Rubyでキーと値のペアを

Rubyでは、<<を使って既存の配列に値を追加することができます。

a = []
a << "foo"

しかし、既存のハッシュにキーと値のペアを追加することはできますか?

h = {}
h << :key "bar"

できるのは知っています。

h[:key] = ""
h[:key] << "bar"

しかし、それは私が望むことではありません。

ありがとうございます。

ソリューション

マージ!`]があります(http://ruby-doc.org/core-2.2.0/Hash.html#method-i-merge-21)。

h = {}
h.merge!(key: "bar")
# => {:key=>"bar"}
解説 (6)

いいえ、キーと値のペアを追加することはできません。私が知っている中で、最も近い*ものは、storeメソッドを使うことです。

h = {}
h.store("key", "value")
解説 (0)

もしかしたら、Hash#mergeが欲しいのかもしれません。

1.9.3p194 :015 > h={}
 => {} 
1.9.3p194 :016 > h.merge(:key => 'bar')
 => {:key=>"bar"} 
1.9.3p194 :017 > 

配列をその場で変更したい場合は、merge!を使います。

1.9.3p194 :016 > h.merge!(:key => 'bar')
 => {:key=>"bar"} 
解説 (3)