Jaka jest różnica między metodami dup i clone Rubiego?
TheRuby docdup
mówić:
Ogólnie,clone
idup
mogą mieć różne semantyki w klasach potomnych. Podczasclone
służy do duplikowania obiektu, w tym jego stanu wewnętrznego,dup
zazwyczaj używa klasy obiektu potomnego do utworzenia nowej instancji.
Ale kiedy wykonuję jakiś test, stwierdziłem, że są w rzeczywistości takie same:
<code>class Test attr_accessor :x end x = Test.new x.x = 7 y = x.dup z = x.clone y.x => 7 z.x => 7 </code>
Jakie są więc różnice między tymi dwiema metodami?