hash初級

Ruby の `{ a: 1 }.merge({ b: 2 })` の結果はどれですか?

  • { a: 1 }(元のハッシュは変わらない)
  • { b: 2 }(上書きされる)
  • { a: 1, b: 2 }
  • TypeError が発生する

解説

`merge` は2つのハッシュを合わせた新しいハッシュを返します。元のハッシュは変更しません。破壊的に変更する場合は `merge!`(または `update`)を使います。キーが重複する場合は引数側の値で上書きされます。