为什么我的代码只打印一次nil?

很容易就可以解决这个问题,只需要在函数末尾加上 return nil,但是为什么我的代码没有这一行就无法工作呢?

更让人困惑的是,它总是打印出相应次数的 nil,比我调用 x(false) 的次数多 1。

我似乎无法理解这种情况为什么会发生。

点赞
用户1009479
用户1009479

手册 中指出:

如果程序执行到函数结尾时没有遇到 return 语句,则函数返回无结果。

注意,返回无结果和返回 nil 不同。


在以下调用中:

print(x(true), x(false), x(false))

x(false) 返回的是无结果,但除了最后一个元素外,其他元素总是调整为恰好一个结果。

通常我们会看到返回一个或多个结果的函数调用仅保留第一个结果。在这里,没有结果也被填充了 nil

2015-10-09 17:37:42