【Ruby3.x】Hash::merge!()メソッドの使い方
merge!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
merge!メソッドは、呼び出し元のHashオブジェクトに別のHashオブジェクトの内容を結合する(マージする)メソッドです。このメソッドは、引数として渡されたHashオブジェクトのすべてのキーと値を、呼び出し元のHashオブジェクトに追加または更新します。
merge!メソッドの最大の特徴は、それが「破壊的」なメソッドであるという点です。これは、メソッドを呼び出した元のHashオブジェクト自身が直接変更され、新しいHashオブジェクトが生成されるわけではないことを意味します。そのため、元のハッシュの内容を保持したい場合は注意が必要です。
キーの重複が発生した場合、つまり、呼び出し元のハッシュと引数で渡されたハッシュの両方に同じキーが存在する場合、引数として渡されたハッシュの値が優先されます。これにより、元のハッシュの対応する値は新しい値で上書きされます。メソッドの実行後、変更された呼び出し元のHashオブジェクト自身が戻り値として返されます。
このメソッドは、既存のデータ集合を表すハッシュに、後から取得したデータや、別の設定情報を統合するような場面で非常に便利です。元のハッシュの内容を直接更新したい場合に適しており、効率的なデータ操作を可能にします。
構文(syntax)
1original_hash.merge!(other_hash) { |key, old_value, new_value| new_value }
引数(parameters)
*rest, &block
- *rest: マージする他のHashオブジェクトを可変長引数で指定します。
- &block: マージ時にキーが重複した場合の処理をブロックで定義します。
戻り値(return)
Hash
自身を更新したHashオブジェクトそのものを返します。