【Ruby3.x】Enumerator::Lazy::reject()メソッドの使い方
rejectメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
rejectメソッドは、Enumerator::Lazyクラスに属し、遅延評価される列挙可能なオブジェクトから、特定の条件に合致する要素を除外(拒否)し、新しいEnumerator::Lazyオブジェクトを生成するメソッドです。
遅延評価とは、要素が実際に使用される時まで、その要素に対する処理が実行されない仕組みを指します。この特性により、rejectメソッドは、非常に大規模なデータセットや、無限に続くデータストリームを扱う場合でも、メモリ使用量を最小限に抑えつつ、効率的にフィルタリング処理を行うことができます。
具体的には、rejectメソッドは引数としてブロック(処理のまとまり)を受け取ります。このブロックは、列挙可能なオブジェクトの各要素に対して順に評価されます。ブロックが真(true)を返した要素は、結果のシーケンスから除外され、ブロックが偽(false)またはnilを返した要素のみが、新しいEnumerator::Lazyオブジェクトに含まれます。
このメソッドを使うことで、メモリにすべてのデータを読み込むことなく、必要な要素だけを効率的に選別できるため、システムエンジニアが大規模なデータ処理やストリーム処理を実装する際に非常に有用です。戻り値は常に新しいEnumerator::Lazyオブジェクトであり、元のオブジェクトが変更されることはありません。
構文(syntax)
1[1, 2, 3, 4, 5].lazy.reject { |n| n.even? }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Enumerator::Lazy
指定された条件に基づいて、Enumerator::Lazy#reject メソッドの戻り値の説明を生成します。
Enumerator::Lazy#reject メソッドは、ブロックで評価された条件が偽となる要素のみを遅延評価する新しい Enumerator::Lazy オブジェクトを返します。