a
ハッシュです。ハッシュを繰り返しs
プッシュしたい配列です。a
アイデアは、反復的にプッシュされた各ハッシュの値を個別に保持することです。これが私が試したものです。
a = {:a=> 1, :b=>2}
s = []
s << a
s << a # => [{:b=>2, :a=>1}, {:b=>2, :a=>1}]
a[:b] = 3
s # => [{:b=>3, :a=>1}, {:b=>3, :a=>1}]
t = []
t.push(a) # => [{:b=>3, :a=>1}]
t.push(a) # => [{:b=>3, :a=>1}, {:b=>3, :a=>1}]
a[:b] = 4
t # => [{:b=>4, :a=>1}, {:b=>4, :a=>1}]
上記は解決策を提供しません。変更a
すると、以前にプッシュされた配列内の要素の値が変更されます。a
をs
2 回押した後、a[:b]
から に変更し2
たところ3
、すべての要素に変更が反映されました。これについての提案をお願いします。