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

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

関連コンテンツ