class Enumerator::Product

Enumerator::Product erzeugt ein kartesisches Produkt beliebiger Anzahl von aufzählbaren Objekten. Das Iterieren über das Produkt von aufzählbaren Objekten ist ungefähr äquivalent zu verschachtelten each_entry-Schleifen, wobei die Schleife für das rechteste Objekt am innersten platziert ist.

innings = Enumerator::Product.new(1..9, ['top', 'bottom'])

innings.each do |i, h|
  p [i, h]
end
# [1, "top"]
# [1, "bottom"]
# [2, "top"]
# [2, "bottom"]
# [3, "top"]
# [3, "bottom"]
# ...
# [9, "top"]
# [9, "bottom"]

Die Methode, die gegen jedes aufzählbare Objekt verwendet wird, ist „each_entry` anstelle von `each`, sodass das Produkt von N aufzählbaren Objekten ein Array von genau N Elementen in jeder Iteration liefert.

Wenn kein Enumerator angegeben wird, wird ein gegebener Block einmal aufgerufen, der eine leere Argumentenliste liefert.

Diese Art von Objekten kann durch Enumerator.product erstellt werden.