【Ruby3.x】Hash::update()メソッドの使い方
updateメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
updateメソッドは、引数として与えられた他のハッシュのキーと値を現在のハッシュに結合し、そのハッシュ自身の内容を更新するメソッドです。このメソッドは破壊的な操作を行い、呼び出し元のハッシュオブジェクト自体が変更されます。
具体的には、引数のハッシュに含まれるキーと値のペアが、現在のハッシュに新たに追加されます。もし、現在のハッシュと引数のハッシュの両方に同じキーが存在する場合、そのキーに対応する値は引数のハッシュの値によって上書きされます。
しかし、キーが重複した場合に値をどのように決定するかをカスタマイズしたい場合は、ブロックを渡すことができます。ブロックが与えられた場合、重複するキーごとにブロックが実行され、ブロックの戻り値が新しい値として採用されます。このブロックは、重複しているキー、現在のハッシュの元の値、そして引数のハッシュの新しい値の3つの引数を受け取ります。
このupdateメソッドは、merge!メソッドと全く同じ機能を提供します。したがって、ハッシュを別のハッシュの内容で更新し、元のハッシュを直接変更したい場合に利用される、非常に便利なメソッドです。
構文(syntax)
1hash_a = { apple: 1, banana: 2 } 2hash_b = { banana: 3, orange: 4 } 3hash_a.update(hash_b) 4# hash_a は { apple: 1, banana: 3, orange: 4 } になります
引数(parameters)
other_hash
- other_hash: マージする別のハッシュ
戻り値(return)
Hash
Hash#updateメソッドは、レシーバーとなるHashオブジェクト自身を更新した結果、更新後のHashオブジェクトを返します。