Instanzvariablen werden ebenfalls kopiert
Wenn es so eine Klasse gäbe
class Test
def set_name(name)
@name = name
end
def get_name
@name
end
end
Stellen Sie zunächst die Instanzvariable normal ein
origin = Test.new
=> #<Test:0x00007fcebd06e940>
origin.set_name("origin")
=> "origin"
origin.get_name
=> "origin"
Beim Klonen wird die gesamte Instanzvariable kopiert
copy = origin.clone
=> #<Test:0x00007fcebd05d7a8 @name="origin">
copy.get_name
=> "origin"
Das Umschreiben der Instanzvariablen der Kopie wirkt sich nicht auf das Original aus
copy.set_name('copy')
=> "copy"
origin.get_name
=> "origin"
dup Gleiches gilt für dup
copy2 = origin.dup
=> #<Test:0x00007fcebd054040 @name="origin">
irb(main):030:0> copy2.get_name
=> "origin"
Recommended Posts