【发布时间】:2018-06-07 14:46:02
【问题描述】:
我有
function foo()
return a, b
end
x, y = foo() -- x == a, y == b
z = foo() -- z == a
有没有更简单的方法将a 和b(以及函数中的任何其他变量)作为数组传输到z?
用z = {} 初始化z 不起作用,因为它只是将它重新定义为foo() 的第一个结果。
【问题讨论】:
我有
function foo()
return a, b
end
x, y = foo() -- x == a, y == b
z = foo() -- z == a
有没有更简单的方法将a 和b(以及函数中的任何其他变量)作为数组传输到z?
用z = {} 初始化z 不起作用,因为它只是将它重新定义为foo() 的第一个结果。
【问题讨论】:
怎么样:
-- define the function
function foo()
return "one", "two"
end
-- set z to a table of the return values of foo(). The first return
-- value will be z[1], the second one z[2], and so on.
z = {foo()}
-- print it out
for k,v in pairs(z) do
print(k, v)
end
应该得到
1 one
2 two
这就是你要找的东西吗?
【讨论】:
pairs 做了什么,但我不需要。我以不同的方式处理z。这行得通。谢谢。