Admito que soy un poco un novato rubí (escribiendo guiones de rake, ahora). En la mayoría de los idiomas, los constructores de copias son fáciles de encontrar. Media hora de búsqueda no lo encontró en rubí. Quiero crear una copia del hash para poder modificarlo sin afectar la instancia original.
Algunos métodos esperados que no funcionan según lo previsto:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
Mientras tanto, he recurrido a esta solución poco elegante
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
objetos simples , la respuesta proporcionada es buena. Si se trata de objetos similares a Hash que provienen de lugares que no controla, debe considerar si desea que la clase singleton asociada con el Hash esté duplicada o no. Ver stackoverflow.com/questions/10183370/…