function foo() end
if foo() then end
我看到一些执行此操作的代码并想知道:当 foo() 不返回任何内容时,if 语句正在评估什么。
在解释器中尝试过,结果为 false,但这是一个保证吗?它正在评估其他地方返回的最后一个东西吗?
function foo() end
if foo() then end
我看到一些执行此操作的代码并想知道:当 foo() 不返回任何内容时,if 语句正在评估什么。
在解释器中尝试过,结果为 false,但这是一个保证吗?它正在评估其他地方返回的最后一个东西吗?
如果控制到达函数末尾而没有遇到
return
语句,则该函数隐式不返回任何内容。由于 的 语法if
需要单个表达式,因此Nothing的零长度多分辨率表达式将调整为单个值。nil
在控制结构 (
if
,while
,repeat
) 中,条件表达式等于nil
测试false(相反,not nil
是true
)。参见Lua 5.4: