所以我有这个错误,我有一个方法:
def returnArr
[2,3,4]
end
我这样做了:
returnArr = returnArr.first
返回一个错误,指出nilClass没有方法'first'
此外,在完成这行代码之后,请按照以下步骤进行操作:
returnArr = returnArr().first
完全正常,returnArr现在与returnArr()不同。这是怎么回事?
答案 0 :(得分:4)
当你有这条线时
returnArr = returnArr.first
Ruby看到(并执行)这个:
returnArr = nil
returnArr = returnArr.first
在为变量赋值之前,此变量初始化为nil
。因此,在这种情况下,您的局部变量会影响您的方法。如果没有您的提示,ruby无法确定您实际上是否想要调用该方法。当你提供括号时,ruby知道局部变量不能拥有它们并调用方法。
不要再这样做了。特别是在真正的应用程序中。