method1 a b, c
Si, quelle méthode est c un argument?
Dans Ruby, vous n'avez pas besoin de mettre des virgules ou des parenthèses dans les arguments de la méthode. Cependant, dans le cas de ce système, je pense qu'un problème va survenir. Donc, cette fois, je l'ai essayé et vérifié. Je me posais des questions sur les questions suivantes car il n'y avait pas beaucoup d'articles.
Par exemple
method1 a, b
Est
method1(a, b)
Cela signifie (j'ai eu une erreur lorsque j'ai essayé de définir une méthode par la méthode de nom, donc je l'ai définie comme méthode1.).
method1 a b
Est
method1(a(b))
Cela signifie que. C'est bien jusqu'ici (même si c'est déjà un peu étrange à ce stade ... c'est dur pour les débutants ...)
method1 a b, c
N'y a-t-il pas deux possibilités?
method1(a(b),c)
Quand
method1(a(b,c))
Les deux possibilités.
Ce que vous devriez vérifier ici est
est. Il vous suffit de le confirmer. (À ce stade, c'est difficile pour le lecteur.) Mais qu'en est-il des arguments de longueur variable? Peut-être que l'un d'eux a la priorité. ..
Maintenant, vérifions lequel des modèles ci-dessus est utilisé.
def a *temp
p "Le nombre d'arguments de a est"
p temp.size
end
def method1 *temp
p "Le nombre d'arguments de method1 est"
p temp.size
end
Le résultat est ,,,
method1 a 1, 2
# "Le nombre d'arguments de a est"
# 2
# "Le nombre d'arguments de method1 est"
# 1
Autrement dit, ce qui précède
method1(a(1, 2))
A été reçu. Il semble que la possibilité 2 ci-dessus ait été adoptée.
Recommended Posts