ハッシュを別のハッシュに保存するのは一般的なことですか?
-
13-09-2019 - |
質問
いくつかのハッシュ オブジェクトをコレクション (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]
ここにすべての答えは、これまでの完全性の理由のために、私はこれでチャイムますので、プラスハッシュハッシュない、ハッシュでハッシュについて、次のとおりです。
# 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であることを持っていた任意のキーが上書きされることに注意してください。
所属していません StackOverflow