Qual é a diferença entre os métodos dup e clone de Ruby?
oDocs Ruby paradup
dizer:
Em geral,clone
edup
pode ter semânticas diferentes em classes descendentes. Enquantoclone
é usado para duplicar um objeto, incluindo seu estado interno,dup
normalmente usa a classe do objeto descendente para criar a nova instância.
Mas quando eu faço algum teste eu descobri que eles são realmente os mesmos:
<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>
Então, quais são as diferenças entre os dois métodos?