質問

いくつかのハッシュ オブジェクトをコレクション (Java の世界ではリストとして考えてください) に保存したいと考えています。Ruby に同様のデータ構造があるかどうかをオンラインで検索しましたが、見つかりませんでした。現時点ではハッシュを保存しようとしています a[] ハッシュに b[], 、しかし、ハッシュからデータを取得しようとして問題が発生しています b[].

Ruby には組み込みのコレクション データ構造はありますか?そうでない場合、ハッシュを別のハッシュに保存するのが一般的ですか?

役に立ちましたか?

解決

それが問題であるハッシュハッシュにアクセスしていた場合は、

その後、試してみてください。

>> p = {:name => "Jonas", :pos => {:x=>100.23, :y=>40.04}}
=> {:pos=>{:y=>40.04, :x=>100.23}, :name=>"Jonas"}
>> p[:pos][:x]
=> 100.23

他のヒント

それに問題があるべきではありません。

a = {:color => 'red', :thickness => 'not very'}
b = {:data => a, :reason => 'NA'}

おそらくあなたは、あなたが直面しているどのような問題説明することができます。

問題は完全に明確ではないが、私はあなたが右のハッシュのリスト(配列)、?

を持ちたいと思います

その場合は、あなただけの、Javaのリストのようなものである1列にそれらを置くことができます

a = {:a => 1, :b => 2}
b = {:c => 3, :d => 4}
list = [a, b]

あなたは、リストのようなものをハッシュ[0]とリストを取得することができます[1]

Ruby のリストは配列です。使用できます ハッシュto_a.

ハッシュ a とハッシュ b を結合しようとしている場合は、次のように使用できます。 ハッシュマージ

編集:ハッシュ a をハッシュ b に挿入しようとしている場合は、次のようにできます

b["Hash a"] = a;

ここにすべての答えは、これまでの完全性の理由のために、私はこれでチャイムますので、プラスハッシュハッシュない、ハッシュでハッシュについて、次のとおりです。

# Define two independent Hash objects
hash_a = { :a => 'apple', :b => 'bear', :c => 'camel' }
hash_b = { :c => 'car', :d => 'dolphin' }

# Combine two hashes with the Hash#merge method
hash_c = hash_a.merge(hash_b)

# The combined hash has all the keys from both sets
puts hash_c[:a] # => 'apple'
puts hash_c[:c] # => 'car', not 'camel' since B overwrites A

あなたはAにBをマージするとき、AはBであることを持っていた任意のキーが上書きされることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top