Next Previous Contents

20. <3.3>: Iterasjon - Iterator-pattern og 'yield'

For løkken finnes fremdeles i Ruby, men hvor Python har gjort for-løkken glupere, har Ruby gått videre og tatt i bruk Iterator-pattern'et.

  1| # La oss skrive ut 3-gange-tabellen
  2| tall = 3
  3| 
  4| # Ruby har for-løkker som de fleste språk
  5| for i in (1..10)
  6|   puts "#{i} gange #{tall} er #{i*tall}"
  7| end
  8| 
  9| # 5-gange-tabellen
 10| tall = 5
 11| 
 12| # men for-løkkens dager er talte. 
 13| # for-løkken over er syntaktisk sukker for
 14| # følgende bruk av iterator-metoden each.
 15| (1..10).each do |i|
 16|   puts "#{i} gange #{tall} er #{i*tall}"
 17| end  

(1..10) lager et Range-objekt, som spenner i fra og med 1, til og med 10. Dersom du ikke ønsker å inkludere 10, kan du bruke 3 punktum, for eksempel så spenner (1...10) i fra 1, til og med 9.


Next Previous Contents