本文簡要介紹ruby語言中 Hash.merge
的用法。
用法
merge → copy_of_self
merge(*other_hashes) → new_hash
merge(*other_hashes) { |key, old_value, new_value| ... } → new_hash
返回通過將每個 other_hashes
合並到 self
的副本中形成的新哈希。
other_hashes
中的每個參數都必須是一個哈希。
帶參數且無塊:
-
返回通過將
other_hashes
中的每個連續 Hash 合並到self
中形成的新 Hash 對象。 -
每個new-key 條目都添加到末尾。
-
每個 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}
帶參數和塊:
-
返回一個新的 Hash 對象,它是
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。