3 votes

Bonne pratique pour retourner explicitement les valeurs de la fonction ?

Vous préférez ceci :

def add(a, b)
  puts "ADDING #{a} + #{b}"
  return a + b
end

sur ce sujet ?

def add(a, b)
  puts "ADDING #{a} + #{b}"
  a + b
end

4voto

maček Points 25640

C'est The Ruby Way™ de ne pas inclure le return sauf si cela est absolument nécessaire.

Je suis sûr qu'il y a de meilleurs exemples, mais en voici un simple.

def divide a, b
    return false if b == 0
    a/b
end

Il convient de noter que Ruby fournit des moyens d'ignorer facultativement un grand nombre de syntaxes. () sont facultatifs, sauf si vous les imbriquez. {} peut également être omise dans de nombreux cas.

func(5, 5, {:hello => 'world'})
# is the same as
func 5, 5, hello: 'world'

Vous apprendrez beaucoup plus de raccourcis au fur et à mesure.

2voto

Tyler DeWitt Points 3751

El Guide de style dit d'omettre le retour explicite

Évitez le retour lorsque cela n'est pas nécessaire.

# bad
def some_method(some_arr)
  return some_arr.size
end

# good
def some_method(some_arr)
  some_arr.size
end

1voto

user1388632 Points 11

Jetez un coup d'oeil à ça : http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/

il explique comment return fonctionne sur les procs, lambdas et blocs.

0voto

ksol Points 5143

Tout dépend du contexte. Habituellement, il n'est pas nécessaire de le mettre explicitement : les rubyistes savent que la dernière expression est celle qui est retournée. Cependant, en de rares occasions, la dernière expression n'est pas facile à saisir, comme dans une interation ou une structure obscure, alors il peut être bon de la mettre. Mais en général, ce n'est pas nécessaire.

EDIT :

Et évidemment, lorsque vous essayez de retourner une expression qui n'est pas la dernière de votre méthode, vous ont pour utiliser le retour. Comme vous le feriez avec des accesseurs chargés paresseusement

0voto

Christopher Oezbek Points 2691

Pour return a + b :

  • lisibilité
  • moins de risques d'erreurs

Cons :

  • verbeux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X