【Ruby3.x】Enumerator::Yielder::<<()メソッドの使い方
<<メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
<< メソッドは、Enumerator::Yielder オブジェクトを通じて、列挙子に値を生成・提供するメソッドです。RubyのEnumerator(エニュメレータ)は、配列のように全ての要素をあらかじめ持たずに、必要な時に必要な値を一つずつ作り出す「繰り返し処理の仕組み」を提供するオブジェクトです。このEnumeratorを新しく作成する際に使うEnumerator.newメソッドに渡すブロックの引数が、Enumerator::Yielderのインスタンスとなります。
このYielderオブジェクトの<<メソッドを使うと、そのメソッドに渡した値をEnumeratorの利用元(例えばeachメソッドなど)に「渡す」ことができます。これは、Enumeratorが次に返す値として、<<メソッドの引数を設定する役割を担っています。Rubyのブロック内で値を呼び出し元に返すyieldキーワードと、機能としては同じ働きをします。
例えば、複雑な条件や処理に基づいて値を順番に作り出したい場合や、無限に続くようなデータ列を扱う際に、Enumerator.new do |yielder| yielder << value; end のように使用されます。これにより、プログラムは全ての値を一度にメモリに保持することなく、必要になった時にだけ値を生成するため、効率的な繰り返し処理を実現できます。
構文(syntax)
1e = Enumerator.new do |yielder| 2 yielder << "value1" 3 yielder << "value2" 4end
引数(parameters)
req
- req: Yielderに渡す値
戻り値(return)
self
このメソッドは、自身(Enumerator::Yielderオブジェクト)を返します。