Next Previous Contents

21. <3.3.1>: Iterere over en datastruktur

Når man skal iterere over datastrukturer, blir indekser lett i veien. Såkalte "off-by-one" feil er ganske vanlige. Men hvorfor ikke la datastrukturen stå for itereringen?

  1| personer = [ "Ola", "Per", "Jan", "Line"]
  2| 
  3| for i in (0...personer.size)         # Den "gamle" naive måten.
  4|   puts "Hei " + personer[i]
  5| end
  6| 
  7| for person in personer               # Alle objekter som implementerer 
  8|   puts "Er #{person} tilstede?"      # 'each' kan itereres over.
  9| end
 10| 
 11| personer.each do |person|            # Ruby-måten.
 12|   puts "Velkommen #{person}"         
 13| end  

"Hva er den |person|greia?"
Det er nesten som en argumentdeklarasjon, men ikke til en funksjon.
do |person| end er en blokk, et veldig viktig konsept i Ruby.


Next Previous Contents