當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Hash.update用法及代碼示例


本文簡要介紹ruby語言中 Hash.update 的用法。

用法

update(*other_hashes) { |key, old_value, new_value| } -> self
也別名為:merge!

將每個 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-lang.org大神的英文原創作品 Hash.update。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。