4.16.2. Vytvoření nového iterátoru

Jsou tří způsoby jak blok předaný metodě použít (volat):

  1. pomocí klíčového slova yield

  2. voláním pomocí metody call

  3. použitím Proc.new následovaného call

Příkaz yield volá blok. Do bloku můžeme předat parametry:

def myIterator
    yield 1,2
end
myIterator { |a,b| puts a, b }
def myIterator(&b)
    b.call(2,3)
end
myIterator { |a,b| puts a, b }
def myIterator
    Proc.new.call(3,4)
    proc.call(4,5)
    lambda.call(5,6)
end
myIterator { |a,b| puts a, b }

Metoda se může pomocí volání block_given? dotázat, zdali jí byl předán blok.

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .