中級 › 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]
空欄を埋めて実行を通す
配列の中身が意図せず混ざるバグは気づきにくく、キーを分けたつもりが同じ配列を共有していることが原因です。
次の問題