Next Previous Contents

24. <3.3.2.2>: Proc-objekter

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."


Next Previous Contents