L'identification de la dernière boucle lors de l'utilisation de chaque

Je veux faire quelque chose de différent avec la dernière itération de boucle lors de l'exécution de 'foreach' sur un objet. Je suis l'aide de Ruby, mais il en va de même pour C#, Java, etc.

  list = ['A','B','C']
  list.each{|i|
    puts "Looping: "+i # if not last loop iteration
    puts "Last one: "+i # if last loop iteration
  }

La sortie désirée est équivalent à:

  Looping: 'A'
  Looping: 'B'
  Last one: 'C'

L'évidente solution de contournement est de migrer le code d'une boucle à l'aide de 'for i in 1..list.length', mais la solution se sent plus gracieux. Quelle est la façon la plus discrète pour code un cas particulier au cours d'une boucle? Peut-il être fait avec foreach?

  • Merci à tous pour les grands et les diverses réponses. Je vois ce que les gens disent à propos de collections n'ayant pas toujours un ordre. Mais, à certains moments, les collections ont un ordre et je ne vois pas pourquoi pour chaque boucle ne doit pas toujours s'appliquer.
  • Désolé que je ne pouvez sélectionner qu'une seule réponse, je fais comme la plupart d'entre eux.
  • dommage que vous n'avez pas sélectionné l'un des meilleurs.
InformationsquelleAutor Matt | 2009-07-01