Et Proc-objekt innkapsler en blokk. De kan lages via Proc.new
, nøkkelordene proc
og lambda
, eller via bruk av &
-prefikset i argumentlista til metodedefinisjonen.
1| # Lager ett Proc-objekt av en block. 2| p = Proc.new {|i| 3| puts "Hei #{i}!" 4| } 5| 6| # Vi kan kalle Proc'en eksplisitt... 7| p.call('Jens') #=> "Hei Jens!" 8| 9| # Bruke den som block... 10| [1,2,3].each( &p ) 11| 12| # & prefikset gjør en evt. blokk om til et Proc-objekt. 13| def tar_block( a, &block ) 14| block.call( a ) 15| end 16| 17| tar_block(5){|b| 18| puts "Hallo #{b}." 19| } #=> "Hallo 5." |