【Ruby3.x】Array::product()メソッドの使い方
productメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
productメソッドは、レシーバである配列の要素と、引数として渡された他の配列の要素を組み合わせて、考えられる「すべての組み合わせ」を生成し、新しい配列として返すメソッドです。このメソッドは、複数のリストから要素を一つずつ選び出してペアを作る、総当たり的な組み合わせを網羅的に列挙したい場合に非常に役立ちます。
たとえば、[1, 2]という配列に対して、[3, 4]という配列をproductメソッドの引数として渡すと、[[1, 3], [1, 4], [2, 3], [2, 4]]のように、元の配列と引数の配列からそれぞれ1つずつ要素を選び出してペアにした配列が、すべて網羅された形で新しい配列として得られます。この結果の各要素は、組み合わせを表現する個別の配列になります。
複数の配列を引数として渡すことも可能です。その場合、レシーバの配列とすべての引数配列の要素の組み合わせが生成されます。たとえば、[A, B].product([1, 2], [:x, :y])とすると、[[A, 1, :x], [A, 1, :y], [A, 2, :x], [A, 2, :y], [B, 1, :x], [B, 1, :y], [B, 2, :x], [B, 2, :y]]のような結果が返されます。このように、組み合わせる対象が増えても柔軟に対応できます。
このメソッドは、商品の色とサイズのバリエーションをリストアップしたり、複数の設定値の組み合わせを検証したりするなど、様々なビジネスロジックで利用できる便利な機能です。元の配列の内容は変更されず、常に組み合わせを含む新しい配列が生成されて返されますので、安心してご利用いただけます。
構文(syntax)
1[1, 2].product([3, 4])
引数(parameters)
*rest
- rest: 組み合わせる他の配列を指定します
戻り値(return)
Array
Arrayクラスのproductメソッドは、レシーバーである配列と、引数として渡された他の配列の全要素の組み合わせからなる新しい配列を返します。