【Ruby3.x】Enumerator::Yielder定数の使い方
Yielder定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Yielder定数は、RubyのEnumeratorクラスに属し、繰り返し処理を定義する際に、生成した値を外部に渡す役割を表す定数です。この定数は、主にEnumerator.newメソッドに渡されるブロックの引数として利用されます。Enumeratorクラスは、配列やハッシュなどが持つeachメソッドのように、要素を一つずつ取り出す繰り返し処理を、開発者が独自のロジックで実装したい場合に用いられる仕組みです。
Enumerator.newにブロックを渡すと、そのブロックはYielderオブジェクトを受け取ります。このYielderオブジェクトのyieldメソッド(例えば、yielder.yield(値)のように呼び出す)を使用することで、ブロック内で生成された値が、Enumeratorオブジェクトを操作する外部のイテレータメソッド(例えば、eachやnextなど)に順次渡されます。
これにより、開発者は複雑なデータ構造や計算結果など、特定のルールに基づいた独自の繰り返し処理を柔軟に定義し、外部からは標準的なイテレータとして利用できるようになります。Yielder定数は、Enumeratorが繰り返し処理の中で「次の要素はこれです」と外部に伝えるための「仲介役」として機能し、Rubyの強力なイテレーション機能を支える重要な要素の一つです。
構文(syntax)
1enum = Enumerator.new do |yielder| 2 yielder.yield("item_one") 3 yielder.yield("item_two") 4end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Class
Enumerator::Yielderは、Enumeratorクラスのインスタンスを生成する際に、ブロック変数として渡されるクラスです。このクラスは、Enumeratorが各要素を生成する際にyieldメソッドを呼び出すためのインターフェースを提供します。