Code Fix

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

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

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

 1  groups = _____________________________
                           ^
 2  groups[:a] << 1
 3  groups[:b] << 2
 4  puts groups[:a].inspect
出力: [1, 2]

空欄を埋めて実行を通す

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

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

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

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

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