中級 › 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は、キーごとに個別のオブジェクトを生成するので共有バグを避けられます。
次の問題