このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.2 リファレンスマニュアル

singleton method Enumerator.product

product(*enums) -> Enumerator::ProductRuby 3.2 から[permalink][rdoc][edit]
product(*enums) { |elts| ... } -> nil

与えた Enumerable なオブジェクトの直積(デカルト積)を列挙する Enumerator を作って返します。

Enumerator::Product.new と同じです。ブロックを与えた場合は、各要素の配列をブロックに渡して繰り返し、nil を返します。

[PARAM] enums:
直積を取る Enumerable なオブジェクトを指定します。
e = Enumerator.product(1..3, [4, 5])
p e.to_a # => [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]
p e.size # => 6
例: ブロックを与えた場合
Enumerator.product(1..2, ["a", "b"]) do |i, s|
  p [i, s]
end
# => [1, "a"]
#    [1, "b"]
#    [2, "a"]
#    [2, "b"]

[SEE_ALSO] Enumerator::Product