これは、私が理解するのに苦労しているコードの簡略化されたバージョンです:
1.9.3p448 :004 > a = {a: 1, b: 2}
=> {:a=>1, :b=>2}
1.9.3p448 :005 > b = a
=> {:a=>1, :b=>2}
1.9.3p448 :006 > b[:c] = 3
=> 3
1.9.3p448 :007 > a
=> {:a=>1, :b=>2, :c=>3}
1.9.3p448 :008 >
変わる理由がわかりませんa
。変えたいだけで、元の価値b
を維持したい。a