2017-10-09 2 views
3

Est-il possible de copier/dupliquer une classe sans passer par la méthode initialize et sans créer une classe vide et copier les valeurs une par une?Crystal - Copier une classe

Ex:

class Hello 
    def initialize 
    puts "hello !" 
    end 
end 

var1 = Hello.new #=> hello! 
var2 = copy(var1) #=> 

copy étant une méthode qui va faire la duplication de classe/copie

Répondre

4

Il semble que vous ne voulez pas copier une classe, mais un objet. La méthode pour cela est dup.

var2 = var1.dup 
3

Vous pouvez utiliser la méthode dup:

class Hello 
    def initialize 
    puts "hello !" 
    end 
end 

var1 = Hello.new # hello ! 
var2 = var1.dup 

pp var1 # => #<Hello:0x104134ff0> 
pp var2 # => #<Hello:0x104134fe0>