Iterátor je metoda která jako parametr akceptuje blok nebo objekt třídy Proc. Blok kódu se aplikuje na vybrané prvky.
kolekce.vyber do |element|
# použití elementu
end
Iterátor se používá k realizaci uživatelsky definovaných řídicích struktur, obzvláště cyklů.
Ukažme si jednoduchý příklad:
# File: session/iterator-1.sesdata = [ 'první', 'druhý', 'třetí' ]["prvn\303\255", "druh\303\275", "t\305\231et\303\255"]data.each do |slovo|puts slovoendprvnídruhýtřetí["prvn\303\255", "druh\303\275", "t\305\231et\303\255"]
Metodě each objektu data jenž je třídy Array je předán blok. Tedy kód uvedený mezi do ... end. Metoda tento blok opakovaně vykonává pro každý prvek pole. Tento prvek pak předává do bloku jako parametr slovo.
V některých případech mají konstrukce bloku do ... end a { ... } odlišný význam.
foobar a, b do ... end # foobar je iterátor
foobar a, b { ... } # b je iterátorToto je způsobeno odlišnou prioritou { ... }. První případ je ekvivalentní foobar(a, b) do ... end zatímco druhý foobar(a, b { ... }).
