war*_*ing 5 null lua return-value user-defined-functions
它非常容易修复; 简单地说return nil,但为什么没有那条线我的代码不能工作?
function x(bool)
if bool then
return "!"
end
end
print(x(true), x(false), x(false))
Run Code Online (Sandbox Code Playgroud)
令它更令人困惑的是,它总是打印出nil我所谓的x(false)减1的次数.
我似乎无法围绕为什么会发生这种情况.
手册说:
如果控件到达函数的末尾而没有遇到
return语句,则函数返回时没有结果.
请注意,返回没有结果与返回不同nil.
在这个电话中:
print(x(true), x(false), x(false))
Run Code Online (Sandbox Code Playgroud)
两者x(false)都不返回任何内容,但是除了最后一个元素之外的所有元素总是被调整为一个结果
通常我们看到函数调用返回一个或多个结果只剩下第一个.这里没有结果也填充了nil.