Vuol dire che usare for è equivalente ad usare each.
In altre parole i seguenti statement sono identici.
codice:
colors = %w(green red yellow)
for color in @colors
...
end
@colors.each do |color|
...
end
Come dice il libro, in realtà il primo internamente è implementato come il secondo.
Non solo. Il secondo modo segue a pieno la filosofia completamente object oriented di Ruby ed è decisamente molto più flessibile. Facendo uso dei blocchi, puoi passare come argomento ad each delle proc o lambda, addirittura sfruttare la sintassi symbol -> proc.
codice:
colors = %w(green red yellow)
print_item = Proc { |item| p(item) }
@colors.each(print_item)
@colors.each(&:downcase)