Saya akan mengakui bahwa saya sedikit pemula yang ruby (menulis skrip menyapu, sekarang). Dalam sebagian besar bahasa, copy constructor mudah ditemukan. Setengah jam pencarian tidak menemukannya di ruby. Saya ingin membuat salinan hash sehingga saya dapat memodifikasinya tanpa memengaruhi instance asli.
Beberapa metode yang diharapkan yang tidak berfungsi sebagaimana dimaksud:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
Sementara itu, saya telah menggunakan solusi yang salah ini
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
objek biasa , jawaban yang diberikan baik. Jika Anda berurusan dengan objek mirip Hash yang berasal dari tempat yang tidak Anda kontrol, Anda harus mempertimbangkan apakah Anda ingin kelas tunggal yang terkait dengan Hash digandakan atau tidak. Lihat stackoverflow.com/questions/10183370/...