Created
January 18, 2013 21:55
-
-
Save jjaffeux/4568988 to your computer and use it in GitHub Desktop.
named params rubymtion
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def initWithPath(path, andMethod:method) | |
# Le premier paramètre est nommé par la fin de la première partie | |
# de la méthode, donc déjà y a pas de def f(a:b). | |
# Ensuite dans WithPath et andMethod ne sont que des | |
# noms qui ne sont pas réutilisés dans le code. | |
# De ce que je peux voir la syntaxe ruby2.0 : | |
def init_with(path: "/foo", method: :get) | |
[path, method] | |
end | |
# path ca reste le nom de la variable, t’as pas un texte qui | |
# n'est pas utilisé comme variable pour le décrire plus précisément. | |
# Après on peut débattre que la variable | |
# devrait être suffisament explicite en soit mais bon... |
Ok compris.
L'avantage de ta solution c'est qu'on voit bien la "signature" de la méthode. Effectivement, à l'heure actuelle c'est parfois source d'erreurs.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Oui, Twitter est un peu court pour être clair.
Voilà un truc qui marche dans les deux mais ne veut pas dire la même chose :
En 2.0 la fonction s'appelle foo et prend un paramètre simple bar et un paramètre nommé spam dont la valeur par défaut est eggs.
En RM la fonction s'appelle foo:spam et prend deux paramètres bar et eggs. Et cette syntaxe est perturbante, donc j'aurais trouvé plus logique d'utiliser ça :
ou avec ton exemple :
Wala ;)