J'utilise de retour quand je vais à travers une liste, et je veux quitter cette fonction si un membre de la liste remplit les critères. Je pourrais accomplir ceci avec un seul énoncé comme:
list.select{|k| k.meets_criteria}.length == 0
dans certaines situations, mais
list.each{|k| return false if k.meets_criteria}
est une ligne en trop--avec, à mon avis, certains plus de flexibilité. Par exemple, le premier exemple suppose que c'est la seule ligne dans la méthode, et que nous voulons le retour de ce point, peu importe quoi. Mais si c'est un test pour voir si il est sécuritaire de procéder avec le reste de la méthode, le premier exemple devrez gérer que d'une manière différente.
EDIT:
Pour ajouter un peu de souplesse, considérons la ligne de code suivante:
list_of_method_names_as_symbols.each{|k| list_of_objects.each{|j| return k if j.send(k)}}
Je suis sûr que cela peut être accompli en une seule ligne, sans return
, mais du haut de ma tête, je ne vois pas comment.
Mais aujourd'hui, c'est assez souple de la ligne de code qui peut être appelée avec une liste de booléens méthodes et une liste des objets qui implémentent les méthodes.
MODIFIER
Il convient de noter que je suis en supposant que cette ligne est à l'intérieur d'une méthode, pas un bloc.
Mais c'est surtout un style de choix, je pense que dans la plupart des situations, vous pouvez éventuellement éviter d'utiliser de l' return
.