Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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オブジェクトそのものを返します。

関連コンテンツ

関連プログラミング言語