ฉันจะยอมรับว่าฉันเป็นมือใหม่ทับทิม (เขียนสคริปต์คราดตอนนี้) ในภาษาส่วนใหญ่ตัวสร้างสำเนาจะค้นหาได้ง่าย ครึ่งชั่วโมงของการค้นหาไม่พบว่าเป็นทับทิม ฉันต้องการสร้างสำเนาของแฮชเพื่อให้สามารถแก้ไขได้โดยไม่กระทบกับอินสแตนซ์ดั้งเดิม
วิธีการที่คาดหวังบางอย่างที่ไม่ทำงานตามที่ต้องการ:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
ในระหว่างนี้ฉันใช้วิธีแก้ปัญหาที่ไม่เหมาะสมนี้
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
วัตถุธรรมดาคำตอบที่ให้นั้นดี หากคุณกำลังจัดการกับวัตถุที่คล้ายกับ Hash ที่มาจากสถานที่ที่คุณไม่สามารถควบคุมได้คุณควรพิจารณาว่าคุณต้องการคลาส singleton ที่เกี่ยวข้องกับ Hash ที่ทำซ้ำหรือไม่ ดูstackoverflow.com/questions/10183370/…