为什么我的代码只打印一次 nil?
Why does my code only print nil once?
修复超级容易;只需将其设置为 return nil
,但 为什么 没有该行我的代码不能工作?
function x(bool)
if bool then
return "!"
end
end
print(x(true), x(false), x(false))
更令人困惑的是,它总是打印 nil
,就像我调用 x(false)
减去 1 的次数一样多。
我似乎无法理解为什么会这样。
The manual 说:
If control reaches the end of a function without encountering a return
statement, then the function returns with no results.
请注意,return没有结果与 returnnil
不同。
在这个调用中:
print(x(true), x(false), x(false))
两个 x(false)
return什么都没有,但是,除了最后一个元素之外的所有元素总是调整为恰好一个结果。
通常我们看到函数调用 return 一个或多个结果只剩下第一个。这里no result也补了个nil
修复超级容易;只需将其设置为 return nil
,但 为什么 没有该行我的代码不能工作?
function x(bool)
if bool then
return "!"
end
end
print(x(true), x(false), x(false))
更令人困惑的是,它总是打印 nil
,就像我调用 x(false)
减去 1 的次数一样多。
我似乎无法理解为什么会这样。
The manual 说:
If control reaches the end of a function without encountering a
return
statement, then the function returns with no results.
请注意,return没有结果与 returnnil
不同。
在这个调用中:
print(x(true), x(false), x(false))
两个 x(false)
return什么都没有,但是,除了最后一个元素之外的所有元素总是调整为恰好一个结果。
通常我们看到函数调用 return 一个或多个结果只剩下第一个。这里no result也补了个nil