【Ruby3.x】Enumerator::Lazy::map()メソッドの使い方
mapメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
mapメソッドは、Enumerator::Lazyオブジェクトの各要素に対し、引数に指定されたブロック内の処理を適用し、その結果を新しいEnumerator::Lazyオブジェクトとして返すメソッドです。このメソッドがEnumerator::Lazyクラスに属しているため、要素の変換処理は「遅延評価」されます。遅延評価とは、ブロック内の処理が、実際にその変換された要素が必要とされるまで実行されないことを意味します。
例えば、最終的に配列として結果を取得するためにto_aメソッドなどが呼び出されるまで、mapに渡されたブロックは実行されません。これにより、非常に大きなデータセットや無限の可能性を持つシーケンスを扱う際に、不必要な計算を省き、メモリを効率的に使用することが可能になります。要素を一つずつ変換しながら、その結果すべてをすぐに利用する必要がない場合に、このmapメソッドは非常に強力なツールとなります。
構文(syntax)
1[1, 2, 3].lazy.map { |n| n * 2 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Enumerator::Lazy
map メソッドは、遅延評価される Enumerator::Lazy オブジェクトを返します。これにより、元のコレクションの要素にブロックを適用した結果を、必要になるまで計算しないようにできます。