【Ruby3.x】Enumerator::each()メソッドの使い方
eachメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
eachメソッドは、RubyのEnumeratorクラスに属し、そのオブジェクトが保持する要素を順に処理するために使用されるメソッドです。
このメソッドは、引数としてブロックを受け取るかどうかで挙動が変わります。ブロックが与えられた場合、Enumeratorオブジェクトが持つ各要素に対して、そのブロック内の処理を一つずつ実行します。これにより、配列やハッシュなどのコレクションの要素それぞれに、特定の操作を適用したり、値を確認したりすることが可能になります。例えば、数字のリストから偶数だけを抽出したり、各要素を加工して新しい値に変換したりするような場面で、ブロック内の処理が要素ごとに繰り返されます。
一方、ブロックが与えられなかった場合、eachメソッドは自身(Enumeratorオブジェクト)を返します。この機能は、mapやselectといった他のイテレータメソッドを連続して呼び出す、いわゆるメソッドチェーンを行う際に非常に便利です。これにより、一連の処理を簡潔かつ読みやすく記述することができます。
Enumeratorクラスは、様々なオブジェクトの繰り返し処理を統一的に扱うための機能を提供し、その核心となるのがこのeachメソッドです。プログラムにおいて、データを効率的かつ柔軟に反復処理するための基盤として、幅広く利用されます。
構文(syntax)
1enumerator_object = [1, 2, 3].to_enum 2enumerator_object.each do |element| 3 # element を使った処理 4end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Enumerator | Enumerable
このメソッドは、イテレータ自身を返します。ただし、ブロックが渡されなかった場合は Enumerable モジュールで定義されたメソッドを呼び出せる Enumerator オブジェクトが返されます。