Vu le code suivant:Dans Ruby, comment les variables sont-elles passées dans les arguments sans appel de méthode?
def method
words = "33"
return words
end
def callmethod
words = method
result = printout(words)
end
def printout(words)
puts (words)
end
callmethod #will print out --> "33" (words from method)
Comment Ruby reconnaît que la words
variable fait partie de l'appel de méthode (callmethod
) quand il n'a pas été appelé explicitement? Dans ce cas, la ligne dont je parle spécifiquement résultat = printout(words)
. Il semble que cette fonction ramasse les mots variables (valeur de retour de la méthode), même si je n'ai pas utilisé l'appel de méthode pour le mettre explicitement. Quelqu'un peut-il m'expliquer comment cela est possible?
'words = method' est la même chose que' words = method() '. Vous appelez la méthode nommée 'method', donc' words' va maintenant contenir la valeur '33'. – Casper
Que pensiez-vous que la ligne 'words = method' faisait, sinon invoquer' method' et stocker la valeur retournée dans une nouvelle variable locale appelée 'words'? – meagar
Je reçois le fait qu'il a renvoyé une valeur et stocké dans des mots. N'a pas vraiment le fait que la façon dont la fonction a attrapé les mots variables locales sans avoir à passer par une méthode. – developer098