หากคุณต้องการเพิ่มรายการใหม่จากmerge
วิธีแฮชอื่น:
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
ในกรณีเฉพาะของคุณอาจเป็น:
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
แต่ไม่ควรใช้เมื่อคุณควรเพิ่มองค์ประกอบอีกหนึ่งองค์ประกอบ
ให้ความสนใจที่merge
จะแทนที่ค่าด้วยคีย์ที่มีอยู่:
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
เหมือนกันหมด hash[:item1] = 2
นอกจากนี้คุณควรทราบว่าmerge
วิธีการ (แน่นอน) ไม่มีผลต่อค่าดั้งเดิมของตัวแปรแฮช - มันจะส่งคืนแฮชที่ผสานใหม่ หากคุณต้องการแทนที่ค่าของตัวแปรแฮชให้ใช้merge!
แทน:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
hash.merge!(item2: 2)
การผสานและบันทึกค่า!