Se você precisar do índice da iteração de um array ao utilizar um método que retorna um outro array (collect, map, select, dentre outros), saiba que existe uma maneira muito mais elegante que manter contadores; utilize o método to_enum.

require "enumerator"
fruits = %w(apple orange lemon)
list = fruits.to_enum(:each_with_index).collect {|fruit, i| "#{i + 1}. #{fruit}" }
puts list.inspect #=> ["1. apple", "2. orange", "3. lemon"]

Se você estiver usando Ruby on Rails, ele já carrega o Enumerator, facilitando ainda mais a sua vida.

Comentários #

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.