4
A
回答
7
,沒有任何區別。
唯一的區別是您可以在合併參數中使用多個字段(含義:另一個散列)。
例子:
h1 = { "a" => 100, "b" => 200 }
h2 = { "b" => 254, "c" => 300 }
h3 = h1.merge(h2)
puts h1 # => {"a" => 100, "b" => 200}
puts h3 # => {"a"=>100, "b"=>254, "c"=>300}
h1.merge!(h2)
puts h1 # => {"a"=>100, "b"=>254, "c"=>300}
在分配單值,我寧願h[:field] = new_val
超過merge
可讀性原因和我想它比合並更快。
您還可以看看哈希的RDoc:http://ruby-doc.org/core/classes/Hash.html#M000759
2
他們做同樣的事情,但是:
@attr[:field] = new_value
更有效,因爲沒有散穿越是必要的。
0
您可以使用非重合並使用函數式編程風格的哈希。
Ruby的函數式編程有下Don't update variables
不更新哈希
號:
hash = {:a => 1, :b => 2}
hash[:c] = 3
hash
是:
hash = {:a => 1, :b => 2}
new_hash = hash.merge(:c => 3)
相關問題
- 1. 紅寶石:合併數組或哈希
- 2. 合併紅寶石哈希添加鍵
- 3. 紅寶石 - 哈希
- 4. 紅寶石 - 哈希
- 5. 紅寶石哈希「delete_if」空哈希
- 6. 紅寶石組合與哈希
- 7. 紅寶石哈希鍵compare_by_identity
- 8. 比較紅寶石哈希
- 9. 紅寶石:通過哈希
- 10. 紅寶石哈希設置
- 11. 紅寶石哈希轉
- 12. 紅寶石哈希JSON
- 13. 紅寶石數組哈希
- 14. 紅寶石 - 在哈希
- 15. 紅寶石計算哈希
- 16. 嵌套哈希 - 紅寶石
- 17. 紅寶石哈希插值
- 18. 紅寶石哈希樹塊
- 19. 紅寶石哈希與環
- 20. 紅寶石轉化哈希
- 21. 紅寶石建築哈希
- 22. 紅寶石哈希選擇
- 23. 訪問哈希紅寶石
- 24. 紅寶石哈希圖?
- 25. SHA256 Base64哈希紅寶石
- 26. ASCII SHA1哈希紅寶石
- 27. 紅寶石提取哈希值並保存到新的哈希
- 28. 排序,同時或合併哈希值,在紅寶石
- 29. 紅寶石合併哈希值的名單,獲得平均
- 30. 紅寶石合併兩個哈希有選擇性覆蓋
這不是rails專用的,它純粹是ruby afaik – 2011-05-16 14:52:02
是的,所以常常說Rails有時候我忘了什麼是純Ruby,謝謝。 – eMgz 2011-05-16 15:14:13