Les variables d'instance sont également copiées
S'il y avait une telle classe
class Test
def set_name(name)
@name = name
end
def get_name
@name
end
end
Tout d'abord, définissez la variable d'instance normalement
origin = Test.new
=> #<Test:0x00007fcebd06e940>
origin.set_name("origin")
=> "origin"
origin.get_name
=> "origin"
Une fois clonée, la variable d'instance entière est copiée
copy = origin.clone
=> #<Test:0x00007fcebd05d7a8 @name="origin">
copy.get_name
=> "origin"
La réécriture de la variable d'instance de copie n'affecte pas l'original
copy.set_name('copy')
=> "copy"
origin.get_name
=> "origin"
dup Idem pour dup
copy2 = origin.dup
=> #<Test:0x00007fcebd054040 @name="origin">
irb(main):030:0> copy2.get_name
=> "origin"
Recommended Posts