Ant*_*mas 6 lua
早点进入这个问题.用于多重返回值功能
fn=function() return 'a','b' end
电话
print(fn()) 回报 a b
print(fn())
a b
但电话
print(fn() or nil) 仅返回 a
print(fn() or nil)
a
为什么?or因为第一次通话成功对不对?
or
Yu *_*Hao 5
引用Lua§5.1中的编程 - 多重结果
Lua总是将函数的结果数量调整为调用的情况.当我们将函数作为语句调用时,Lua会丢弃函数的所有结果.当我们使用调用作为表达式时,Lua只保留第一个结果.只有当调用是表达式列表中的最后一个(或唯一)表达式时,我们才能得到所有结果.
对于您的示例,返回值fn()用作表达式(运算or符的左操作数),因此仅保留第一个值.
fn()
归档时间:
12 年 前
查看次数:
766 次
最近记录: