【Ruby3.x】Enumerator::product()メソッドの使い方
productメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
productメソッドは、Enumeratorオブジェクトが持つ要素と、引数として与えられた他のコレクション(配列など)の要素を組み合わせて、考えられるすべての組み合わせを生成するメソッドです。これは数学におけるデカルト積の概念に相当します。
具体的には、productメソッドを呼び出したEnumeratorオブジェクトの各要素と、引数で渡されたコレクションの各要素を順番に組み合わせ、それらすべての組み合わせを要素とする新しい配列を返します。例えば、[1, 2]という配列に対してproduct([3, 4])を呼び出すと、[[1, 3], [1, 4], [2, 3], [2, 4]]のような結果が得られます。複数のコレクションを引数として渡すこともでき、その場合はすべてのコレクションの要素を組み合わせて結果を生成します。
このメソッドは、引数としてブロックを受け取ることも可能です。ブロックが与えられた場合、生成された各組み合わせは配列としてブロックに渡され、ブロック内の処理が実行されます。このとき、productメソッド自体は新しい配列を返さずに、Enumeratorオブジェクトを返します。
productメソッドは、複数の異なる要素のセットから可能なすべての組み合わせを網羅的に生成したい場合に非常に有用です。例えば、ユーザーの選択肢に基づいた複雑な条件設定のテストケースを生成したり、複数のパラメータ間のあらゆる組み合わせを試したい場合など、データ間の多様な関係性を効率的に扱う場面で活用することができます。
構文(syntax)
1[1, 2].to_enum.product([:a, :b])
引数(parameters)
*rest
- rest: productメソッドの対象となる、1つ以上の他のEnumerableオブジェクト
戻り値(return)
Array
すべての要素の組み合わせからなる配列を返します。