【Ruby3.x】Enumerator::Lazy::collect()メソッドの使い方
collectメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
collectメソッドは、Enumerator::Lazyクラスに属し、コレクションの各要素に対して指定されたブロックを実行し、その結果を新しい遅延評価のEnumeratorとして返すメソッドです。
このメソッドは、通常のArray#collectやEnumerable#collect(mapの別名)とは異なり、ブロックの実行を実際の結果が必要になるまで遅らせる「遅延評価」を行います。collectが呼び出された時点ではブロックは実行されず、その戻り値もすぐに生成されません。代わりに、結果の要素が本当に必要とされたとき(例えば、to_aやeachなどのメソッドが呼ばれたとき)に初めて、個々の要素に対してブロックが適用されます。
これにより、非常に大きなデータセットや無限に続くデータストリームを扱う際に、一度にすべての要素をメモリに読み込む必要がなくなり、メモリ使用量を大幅に抑えることができます。collectメソッドは、自身もEnumerator::Lazyの新しいインスタンスを返します。そのため、他の遅延評価メソッドと組み合わせることで、効率的かつ柔軟なデータ処理のパイプラインを構築することが可能です。リソースを効率的に利用しながら、複雑なデータ変換処理を高性能に実行したい場合に活用されます。
構文(syntax)
1(1..5).lazy.collect { |n| n * 2 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Enumerator::Lazy
このメソッドは、遅延評価される Enumerator::Lazy オブジェクトを返します。これにより、元のコレクションへの各要素の変換処理を、実際に要素が必要になったときに初めて実行できるようになります。