Question Equivalent de "continuer" dans Ruby


En C et beaucoup d'autres langues, il y a continue mot clé qui, lorsqu'il est utilisé à l'intérieur d'une boucle, passe à l'itération suivante de la boucle. Y a-t-il un équivalent de ceci continue mot-clé dans Ruby?


548
2017-10-24 19:36


origine


Réponses:


Oui, ça s'appelle next.

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

Cela produit 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 

806
2017-10-24 19:41



next

aussi, regardez redo qui refait le actuel itération.


93
2017-10-24 19:41



L'écriture Ian Purton répondre d'une manière un peu plus idiomatique:

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

Impressions:

  2
  3
  4
  5

69
2018-06-25 17:50



A l'intérieur des boucles et des méthodes d'itération comme each et map la next mot-clé en ruby ​​aura pour effet de sauter à l'itération suivante de la boucle (même que continue en C).

Cependant, ce qu'il fait 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.


37
2017-10-24 19:40



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.


27
2017-10-24 23:09



Je pense que ça s'appelle prochain.


7
2017-10-24 19:40