Devo ammettere che sono un po 'un principiante rubino (scrivendo script rake, ora). Nella maggior parte delle lingue, i costruttori di copie sono facili da trovare. Mezz'ora di ricerche non l'hanno trovata nel rubino. Voglio creare una copia dell'hash in modo da poterlo modificare senza influire sull'istanza originale.
Alcuni metodi previsti che non funzionano come previsto:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
Nel frattempo, ho fatto ricorso a questa soluzione alternativa non elegante
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
oggetti semplici , la risposta fornita è buona. Se hai a che fare con oggetti simili a Hash che provengono da luoghi che non controlli, dovresti considerare se vuoi che la classe singleton associata a Hash sia duplicata o meno. Vedi stackoverflow.com/questions/10183370/…