Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua中的多个返回值_Lua - Fatal编程技术网

Lua中的多个返回值

Lua中的多个返回值,lua,Lua,之前遇到过这个问题。 对于多返回值函数 fn=function() return 'a','b' end 电话 print(fn())返回ab 但是电话 print(fn()或nil)仅返回a 为什么?或不重要,因为第一次呼叫成功,对吗?从 Lua总是根据调用的情况调整函数的结果数。当我们将函数作为语句调用时,Lua将丢弃函数的所有结果当我们将调用用作表达式时,Lua只保留第一个结果。只有当调用是表达式列表中的最后一个(或唯一)表达式时,我们才能获得所有结果 在本例中,fn()的返回值用作表达

之前遇到过这个问题。 对于多返回值函数

fn=function() return 'a','b' end
电话

print(fn())
返回
ab

但是电话

print(fn()或nil)
仅返回
a

为什么?<代码>或不重要,因为第一次呼叫成功,对吗?

Lua总是根据调用的情况调整函数的结果数。当我们将函数作为语句调用时,Lua将丢弃函数的所有结果当我们将调用用作表达式时,Lua只保留第一个结果。只有当调用是表达式列表中的最后一个(或唯一)表达式时,我们才能获得所有结果

在本例中,
fn()
的返回值用作表达式(
运算符的左操作数),因此只保留第一个值