给出以下代码:
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)
当未明确调用变量words
时,Ruby如何识别变量callmethod
是方法调用(printout(words)
)的一部分?在这种情况下,我专门讨论结果= .htaccess
。似乎这个函数正在拾取变量词(方法的返回值),即使我还没有使用方法调用来明确地将它放入。有人可以向我解释这是如何实现的吗?
答案 0 :(得分:3)
callmethod
方法中words
是一个局部变量,其值为方法method
的返回值。
printout(words)
按预期工作,因为您传递的是局部变量words
的值,即字符串"33"
。
Ruby method_name()
在调用方法时是可选的。如果您碰巧有一个具有相同名称的局部变量作为方法,为了让Ruby知道您想要调用方法,而不是获取局部变量的值,您可以说method_name()
。但是有一个更好/推荐的选项 - self.method_name
。