2つのハッシュをマージする
2つのハッシュをマージするには、Hash#update
かHash#merge
を使う。
h1 = {a:1, b:2} h2 = {b:3, c:4} p h1.update(h2) #=> {:a=>1, :b=>3, :c=>4}
Hash#update
は同一のキーが存在する場合、引数で与えたハッシュの値を優先する。
Hash#merge
はブロック付きで呼び出すことができ、キーが重複していた場合はブロックの評価結果を使うようにできる。
h1 = {a:1, b:2} h2 = {b:3, c:4} p h1.merge(h2){|key, v0, v1| v0 + v1 # キーが重複していた場合は2つの値を加算する } #=> {:a=>1, :b=>5, :c=>4}