我正在尝试以下lua代码:
function test() return 1, 2 end
function test2() return test() end
function test3() return test(), 3 end
print(test()) -- prints 1 2
print(test2()) -- prints 1 2
print(test3()) -- prints 1 3
Run Code Online (Sandbox Code Playgroud)
我想test3返回1,2,3
实现这一目标的最佳方法是什么?
Mik*_*ran 22
如果您不确定某些函数可能返回多少个值,您可以执行此类操作.
function test() return 1, 2 end
function test2() return test() end
function test3()
local values = {test2()}
table.insert(values, 3)
return unpack(values)
end
print(test3())
Run Code Online (Sandbox Code Playgroud)
这个输出:
1 2 3
Run Code Online (Sandbox Code Playgroud)
...
function test3()
local var1, var2 = test()
return var1, var2, 3 end
end
print(test3())
Run Code Online (Sandbox Code Playgroud)
我还发现,通过列表末尾的函数调用,返回值不会被截断。如果参数的顺序不重要,那么效果很好。
function test() return 1, 2 end
function test2() return test() end
function test3() return 3, test() end
print(test()) -- prints 1 2
print(test2()) -- prints 1 2
print(test3()) -- prints 3 1 2
Run Code Online (Sandbox Code Playgroud)