質問: ruby (ver2.0)rubyのhash update(merge!)の動作について動作が理解できないのでどなたかご解説いただければと存じます 参考コード ``` a={"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga"} b={"Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"} p a.update(b) #参考コード返り値:{"Foo"=>"hoge", "Bar"=>"piyo", "Baz"=>"fuga"} ``` updateはレシーバーのhashへ、引数のhashを追加すると理解しているので、 想定として、返り値が下記になると思っていたのですが,違うので ご解説いただければ存じます。 ``` {"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga","Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"} ```
回答: 動作というより、そもそもHashの理解が違います。Arrayとは違います。 試しにirbなどで下記のコードを実行してみてください。 ``` p {"Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga","Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga"} p {"Foo"=>"hoge","Bar"=>"piyo","Baz"=>"fuga","Foo"=>"Hoge","Bar"=>"Piyo","Baz"=>"Fuga"} ```