私はRubyを使い慣れていないし、すでに存在するハッシュに新しい項目を追加する方法も知らない。例えば、最初に私は、ハッシュを構築:その後ハッシュに新しい項目を追加する方法
hash = {:item1 => 1}
私はこのようなハッシュ持って、この後のように、ITEM2を追加したい:
{:item1 => 1, :item2 =>2}
を私はハッシュに何をすべきかの方法がわかりません、誰かが私を助けることができる?
私はRubyを使い慣れていないし、すでに存在するハッシュに新しい項目を追加する方法も知らない。例えば、最初に私は、ハッシュを構築:その後ハッシュに新しい項目を追加する方法
hash = {:item1 => 1}
私はこのようなハッシュ持って、この後のように、ITEM2を追加したい:
{:item1 => 1, :item2 =>2}
を私はハッシュに何をすべきかの方法がわかりません、誰かが私を助けることができる?
ハッシュを作成します。
hash = {:item1 => 1}
はそれに新しい項目を追加します。
hash[:item2] = 2
それは同じくらい簡単です:
irb(main):001:0> hash = {:item1 => 1}
=> {:item1=>1}
irb(main):002:0> hash[:item2] = 2
=> 2
irb(main):003:0> hash
=> {:item1=>1, :item2=>2}
ハッシュ[キー] =値 アソシエイツkeyで指定されたキーで値によって与えられる値。 Rubyのドキュメントから
hash[:newKey] = "newValue"
あなたは別のハッシュから新しいアイテムを追加したい場合は - merge
メソッドを使用します。それができるあなたの特定のケースで
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
:
をhash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
ですが、使用するのは賢明ではありません要素を1つだけ追加する必要があります。また、あなたは(もちろん)merge
方法は、元の値に影響を与えていないことに注意を払う必要があります
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
正確hash[:item1] = 2
のような:merge
は、既存のキーと値を置き換えること
ご注意くださいof hash variable - 新しいマージされたハッシュを返します。あなたはハッシュ変数の値を置き換えたい場合は、代わりにmerge!
を使用します。
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
をとしてハッシュを作成します。
h = Hash["one" => 1]
このように複数のキーを挿入しようとすると、毎回実際に新しいハッシュが作成されていることがわかります。おそらくあなたが望むものではないでしょう。もしあなたが望むならば、 'Hash []'はすでに新しいハッシュを作成しているので、 'Hash.new'部分は必要ありません。 – philomory
hash_items = {:item => 1}
puts hash_items
#hash_items will give you {:item => 1}
hash_items.merge!({:item => 2})
puts hash_items
#hash_items will give you {:item => 1, :item => 2}
hash_items.merge({:item => 2})
puts hash_items
#hash_items will give you {:item => 1, :item => 2}, but the original variable will be the same old one.
:
h = Hash.new
=> {}
今すぐとしてハッシュに挿入hash.store(key、value) - ハッシュ値でキーと値のペアを格納します。
例:
hash #=> {"a"=>9, "b"=>200, "c"=>4}
hash.store("d", 42) #=> 42
hash #=> {"a"=>9, "b"=>200, "c"=>4, "d"=>42}
ИванБишевац@Documentation
疑問には、([ドキュメント]を参照してくださいhttp://ruby-doc.org/core-1.9.3/Hash .html#method-i-5B-5D-3D)。 –