1

現時点では、これに特定の目的はありません。これから使用する例には、間違いなくより良い解決策があります (これは非常に単純なものには不要であるため)。ハッシュに動的シンボル <-> コンテンツを入力したいと考えています。以下を含むファイルがあるとします。

this = that
that = this
frog = taco
pota = to

ハッシュを作成したい:

hash = { :this => 'that', :that => 'this', :frog => 'taco', :pota => 'to' }

変数で行われるのを見たことがあると思うので、可能であればシンボルであることにこだわっています。hash{variable => 'this'} は変数の内容をキーとして設定するためです。

4

2 に答える 2

4
hash = Hash[open("file.txt").lines.map do |line|
  key, value = line.split("=").map(&:strip)
  [key.to_sym, value]
end]
于 2012-07-24T19:57:48.437 に答える
1

独自のファイル形式を定義できる場合は、少し変更して以下を使用できます。

this: that
that: this
frog: taco
pota: to

これはYAML構文です。

次の方法で非常に簡単にロードできます。

require 'yaml'

filename = 'yourdatafile.txt'

p YAML.load(File.read(filename))

これにより、文字列でハッシュが作成されます。ただし、データ ファイルを少し変更すると、必要なシンボルが得られます。

:this: that
:that: this
:frog: taco
:pota: to
于 2012-07-24T20:12:14.703 に答える