私は実際に浅いコピーと深いコピーの違いを理解していません。私がテストするとRubyの#dup
は深いコピーを作成するようです。 ルビーでディープコピーが必要な最も単純な例を提供
Produces a shallow copy of obj---the instance variables of obj are
copied, but not the objects they reference.
しかし、私はこれをテストするとき、彼らが参照するオブジェクトを変更するようだ:
ドキュメントは述べています。
class Klass
attr_accessor :name
end
a = Klass.new
a.name = "John"
b = a.dup
b.name = "Sue"
puts a.name # John
@name
がobjects they reference
の一つであるのに、なぜ十分な浅いコピーはここですか?
最も簡単なものディープコピーが必要な例ですか?
あなたは正しいです、私は文字列を変更していない、私の例でそれを再割り当て。 –