Équivalent de «continuer» en Ruby

En C et dans de nombreux autres langages, il y a un mot-clé continue qui, lorsqu’il est utilisé à l’intérieur d’une boucle, passe à l’itération suivante de la boucle. Y at-il un équivalent de ce mot-clé continue dans Ruby?

Oui, c’est appelé next .

 for i in 0..5 if i < 2 next end puts "Value of local variable is #{i}" end 

Cela génère les éléments suivants:

 Value of local variable is 2 Value of local variable is 3 Value of local variable is 4 Value of local variable is 5 => 0..5 

next

regardez aussi redo qui refait l’itération courante .

Écrire la réponse de Ian Purton de manière un peu plus idiomatique:

 (1..5).each do |x| next if x < 2 puts x end 

Impressions:

  2 3 4 5 

A l’intérieur des boucles for et des méthodes d’itération comme each et map le mot-clé next dans ruby, cela fera sauter à la prochaine itération de la boucle (identique à continue dans C).

Cependant, ce qu’il fait en réalité, c’est juste de revenir du bloc actuel. Vous pouvez donc l’utiliser avec n’importe quelle méthode qui prend un bloc – même si cela n’a rien à voir avec l’itération.

Ruby a deux autres mots-clés de contrôle de boucle / itération: redo et retry . En savoir plus sur eux, et la différence entre eux, à Ruby QuickTips .

Je pense qu’il s’appelle ensuite .