Tôi sẽ thừa nhận rằng tôi là một người mới chơi ruby (viết kịch bản cào, bây giờ). Trong hầu hết các ngôn ngữ, các hàm tạo sao chép rất dễ tìm. Nửa giờ tìm kiếm đã không tìm thấy nó trong ruby. Tôi muốn tạo một bản sao của hàm băm để tôi có thể sửa đổi nó mà không ảnh hưởng đến thể hiện ban đầu.
Một số phương pháp dự kiến không hoạt động như dự định:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
Trong khi đó, tôi đã dùng đến cách giải quyết không phù hợp này
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
các đối tượng đơn giản , câu trả lời được cung cấp là tốt. Nếu bạn đang xử lý các đối tượng giống Hash đến từ những nơi bạn không kiểm soát, bạn nên xem xét liệu bạn có muốn lớp singleton được liên kết với Hash trùng lặp hay không. Xem stackoverflow.com/questions/10183370/ Mạnh