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
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
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.
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
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.
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
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.