Jsou tří způsoby jak blok předaný metodě použít (volat):
pomocí klíčového slova yield
voláním pomocí metody call
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.
