Code Fix

中級Hash.new([]) のデフォルト値は全キーで同じ配列を共有してしまう › パターン5

Hash.new([]) のデフォルト値は全キーで同じ配列を共有してしまう

Hash.new([])で作ったハッシュは、存在しないキーにアクセスするたびに同じ1つの配列オブジェクトを返します。

 1  buckets = _____________________________
                            ^
 2  buckets[:x] << "a"
 3  buckets[:y] << "b"
 4  puts buckets[:x].inspect
出力: ["a", "b"]

空欄を埋めて実行を通す

広告
広告スロット(未設定)

Hash.new([]) のデフォルト値は全キーで同じ配列を共有してしまう

その配列を<<で変更すると、まだ触っていないはずの他のキーの値まで変わってしまいます。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)