【Ruby3.x】Struct::each()メソッドの使い方
eachメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
eachメソッドは、RubyのStructクラスのインスタンスが保持する各メンバー(値)に対して、繰り返し処理を実行するメソッドです。Structは、あらかじめ定義された名前付きのフィールドを持つシンプルなデータ構造を表現するためのクラスで、複数の関連するデータをひとまとめにして扱いたい場合に利用されます。例えば、名前、年齢、住所といった複数の情報を一つのオブジェクトとして扱いたい場合に便利です。
このeachメソッドは、Structオブジェクトが持つ各フィールドの値に順次アクセスし、指定された処理を適用することができます。メソッドにブロックが与えられた場合、Structの各メンバーの値が一つずつそのブロックに渡され、ブロック内の処理が実行されます。すべてのメンバーに対して処理が完了すると、メソッドは元のStructオブジェクト自身を返します。
一方、ブロックが省略されて呼び出された場合、eachメソッドはEnumeratorオブジェクトを返します。このEnumeratorオブジェクトを利用することで、後からnextメソッドなどで各メンバーを順に取得したり、mapやselectといった他の繰り返し処理メソッドと組み合わせたりして、柔軟なデータ処理を行うことが可能になります。このように、eachメソッドはStructオブジェクト内のデータを効率的に走査し、操作するための基本的な手段として非常に有用です。
構文(syntax)
1MyStruct = Struct.new(:field1, :field2) 2struct_instance = MyStruct.new("value1", "value2") 3struct_instance.each do |member_value| 4 puts member_value 5end
引数(parameters)
引数なし
引数はありません
戻り値(return)
self または Enumerator
Struct#eachメソッドは、構造体の各要素に対してブロックを繰り返し実行します。ブロックが与えられた場合は構造体自身を返し、ブロックが与えられなかった場合は各要素を順番に生成するEnumeratorを返します。