之间有什么区别:
@attr[:field] = new_value
Run Code Online (Sandbox Code Playgroud)
和
@attr.merge(:field => new_value)
Run Code Online (Sandbox Code Playgroud)
如果您使用merge!而不是merge,则没有区别.
唯一的区别是您可以在合并参数中使用多个字段(意思是:另一个哈希).
例:
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}
Run Code Online (Sandbox Code Playgroud)
当指定单个值,我宁愿h[:field] = new_val过merge可读性原因和我猜它比合并更快.
您还可以查看Hash-rdoc:http: //ruby-doc.org/core/classes/Hash.html#M000759
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |