本文简要介绍ruby语言中 Hash.merge!
的用法。
用法
merge! → self
merge!(*other_hashes) → self
merge!(*other_hashes) { |key, old_value, new_value| ... } → self
别名:update
将每个 other_hashes
合并到 self
中;返回 self
。
other_hashes
中的每个参数都必须是一个哈希。
方法 update
是#merge! 的别名。
带参数且无块:
-
返回
self
,将给定的哈希合并到其中。 -
给定的哈希从左到右合并。
-
最后添加每个新条目。
-
每个 duplicate-key 条目的值都会覆盖前一个值。
例子:
h = {foo: 0, bar: 1, baz: 2}
h1 = {bat: 3, bar: 4}
h2 = {bam: 5, bat:6}
h.merge!(h1, h2) # => {:foo=>0, :bar=>4, :baz=>2, :bat=>6, :bam=>5}
带参数和块:
-
在给定的哈希合并后返回
self
。 -
给定的哈希从左到右合并。
-
每个new-key 条目都添加到末尾。
-
对于每个重复键:
-
使用键和旧值和新值调用块。
-
块的返回值成为条目的新值。
-
例子:
h = {foo: 0, bar: 1, baz: 2}
h1 = {bat: 3, bar: 4}
h2 = {bam: 5, bat:6}
h3 = h.merge!(h1, h2) { |key, old_value, new_value| old_value + new_value }
h3 # => {:foo=>0, :bar=>5, :baz=>2, :bat=>9, :bam=>5}
没有参数:
-
返回
self
,未修改。 -
该块(如果给定)将被忽略。
例子:
h = {foo: 0, bar: 1, baz: 2}
h.merge # => {:foo=>0, :bar=>1, :baz=>2}
h1 = h.merge! { |key, old_value, new_value| raise 'Cannot happen' }
h1 # => {:foo=>0, :bar=>1, :baz=>2}
相关用法
- Ruby Hash.merge用法及代码示例
- Ruby Hash.reject用法及代码示例
- Ruby Hash.delete()用法及代码示例
- Ruby Hash.new用法及代码示例
- Ruby Hash.size用法及代码示例
- Ruby Hash.delete用法及代码示例
- Ruby Hash.hash <=用法及代码示例
- Ruby Hash.select!用法及代码示例
- Ruby Hash.ruby2_keywords_hash用法及代码示例
- Ruby Hash.rassoc(obj)用法及代码示例
- Ruby Hash.to_s用法及代码示例
- Ruby Hash.values_at()用法及代码示例
- Ruby Hash.fetch_values()用法及代码示例
- Ruby Hash.select用法及代码示例
- Ruby Hash.initialize_copy用法及代码示例
- Ruby Hash.replace用法及代码示例
- Ruby Hash.delete_if用法及代码示例
- Ruby Hash.slice用法及代码示例
- Ruby Hash.hash用法及代码示例
- Ruby Hash.each_value用法及代码示例
- Ruby Hash.fetch()用法及代码示例
- Ruby Hash.each用法及代码示例
- Ruby Hash.keys用法及代码示例
- Ruby Hash.each_key用法及代码示例
- Ruby Hash.insert()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Hash.merge!。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。