它非常容易修复;只需将其设为return nil
,但为什么我的代码在没有该行的情况下无法工作?
function x(bool)
if bool then
return "!"
end
end
print(x(true), x(false), x(false))
让它更令人困惑的是,总是打印nil
,多次调用x(false)
减去1。
我似乎无法解决为什么会发生这种情况。
答案 0 :(得分:6)
如果控件到达函数的末尾而没有遇到
return
语句,则函数返回时没有结果。
请注意,返回无结果与返回nil
不同。
在此电话会议中:
print(x(true), x(false), x(false))
两个x(false)
都不返回任何内容,但是除了最后一个元素之外的所有元素总是被调整为一个结果。
通常我们看到函数调用返回一个或多个结果只剩下第一个。这里没有结果也填充了nil
。