2010-07-04 4 views
10

Je ne trouve aucune ressource utile en ligne qui décompose les différentes options de contrôle de débit de Ruby.Contrôle de flux Ruby

Supposons que j'itérer sur un tableau à l'intérieur d'une méthode:

def a_method 
    things.each do |t| 
     # control options? 
    end 
end 

Quelles sont les différentes options de contrôle de flux ici? En quoi diffèrent-ils?

  1. nouvelle tentative
  2. retour
  3. pause
  4. suivant
  5. redo

Répondre

16

retry peut être utilisé dans un bloc de sauvetage, pour revenir en arrière dans le début du bloc après la condition qui a l'exception a été corrigée. À l'intérieur d'un bloc, il a l'effet de sauter au début de la méthode de production. Donc, à l'intérieur de chaque ceci signifie que la nouvelle tentative sautera au début de la boucle.

return reviendra de la méthode à l'intérieur de - dans ce cas de a_method.

break va revenir à la méthode de déformation plastique - dans ce cas de each (ce qui serait différent de retour de a_method si quelque chose est arrivé entre la fin du chaque bloc et la fin de a_method).

next reviendra du bloc et passera ainsi à l'élément suivant dans things.

redo va sauter au début du bloc et ainsi répéter l'itération en cours.

Questions connexes