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. 红宝石哈希与环
- 6. 红宝石哈希设置
- 7. 红宝石 - 在哈希
- 8. 红宝石哈希图?
- 9. 红宝石哈希JSON
- 10. SHA256 Base64哈希红宝石
- 11. 访问哈希红宝石
- 12. 红宝石哈希转
- 13. 比较红宝石哈希
- 14. 红宝石转化哈希
- 15. 红宝石计算哈希
- 16. 红宝石提取哈希值并保存到新的哈希
- 17. 在红宝石合并哈希不按预期工作
- 18. 排序,同时或合并哈希值,在红宝石
- 19. 倒车哈希和红宝石合并键
- 20. 合并同名阵列,红宝石哈希
- 21. 从json到红宝石哈希?
- 22. 红宝石阵列有哈希对?
- 23. 别名哈希键红宝石
- 24. 如何从红宝石哈希
- 25. 红宝石年哈希生成
- 26. 红宝石哈希初始值设定
- 27. 哈希排序alphabetiacly在红宝石
- 28. 将红宝石哈希传入类
- 29. 红宝石性能:多密钥哈希
- 30. 红宝石哈希与数组值
这不是rails专用的,它纯粹是ruby afaik – 2011-05-16 14:52:02
是的,所以常常说Rails有时候我忘了什么是纯Ruby,谢谢。 – eMgz 2011-05-16 15:14:13