Admito que sou um pouco novato em rubi (agora estou escrevendo scripts de rake). Na maioria dos idiomas, os construtores de cópias são fáceis de encontrar. Meia hora de busca não encontrou em rubi. Quero criar uma cópia do hash para poder modificá-lo sem afetar a instância original.
Alguns métodos esperados que não funcionam conforme o esperado:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
Enquanto isso, eu recorri a essa solução deselegante
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
objetos simples , a resposta fornecida é boa. Se você estiver lidando com objetos do tipo Hash provenientes de lugares que você não controla, considere se deseja que a classe singleton associada ao Hash seja duplicada ou não. Consulte stackoverflow.com/questions/10183370/…