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.