【Ruby3.x】Struct::each_pair()メソッドの使い方
each_pairメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
each_pairメソッドは、Structオブジェクトの各メンバー(属性名と値のペア)に対して繰り返し処理を実行するメソッドです。
RubyにおけるStructは、複数の異なる種類のデータを一つにまとめて扱うためのクラスで、名前付きのフィールド(属性)に値を保持することができます。これは、例えば社員の名前や年齢、部署といった情報を一つのまとまりとして管理したい場合に非常に便利です。このeach_pairメソッドは、そうしたStructオブジェクトの内部に格納されている全ての属性について、その属性名(シンボルまたは文字列)と、それに対応する値の組み合わせを一つずつ順番に取り出します。
メソッド呼び出し時にブロック(do ... endや{ ... }で囲まれた処理のまとまり)が与えられた場合、各属性名とその値のペアが引数としてブロックに渡され、ブロック内のコードが実行されます。これにより、Structの全メンバーを検査したり、特定の形式で出力したりするような操作が容易に行えます。例えば、社員の名前や年齢を持つStructオブジェクトに対しeach_pairを使えば、それぞれの属性とその値に順次アクセスし、共通の処理を適用することが可能です。
もしブロックが与えられなかった場合、each_pairメソッドはEnumeratorオブジェクトを返します。このEnumeratorオブジェクトを使うと、Rubyの豊富なEnumerableモジュールのメソッド(例: map, selectなど)と組み合わせて、Structのデータをさらに柔軟に加工したり、特定の条件でフィルタリングしたりすることが可能になります。すべてのペアの処理が完了すると、each_pairメソッドは処理を行った元のStructオブジェクト自身を返します。
構文(syntax)
1User = Struct.new(:name, :email) 2user = User.new("John Doe", "john.doe@example.com") 3 4user.each_pair do |attribute_name, attribute_value| 5 puts "#{attribute_name}: #{attribute_value}" 6end
引数(parameters)
引数なし
引数はありません
戻り値(return)
self または Enumerator
each_pair メソッドは、Struct オブジェクトの各キーと値のペアに対してブロックを実行します。ブロックが実行されない場合は、Enumerator オブジェクトを返します。