今天我和lua一起工作,用“oldesh”代替我的语言,并确实找到了你可以得到的参数作为数组,如soo:
function foo(someting,...)
local arrayofargs = arg
-- code here
end
现在,我有兴趣。可以“以其他方式”?你可以传递数组,而不是数组,但像param列表一样,像这样:
function bar(a1,a2)
print(a1+a1)
end
function foo(someting,...)
local arrayofargs = arg
bar(arg)
end
是的,你不能这样做。但是我可以做一些像这样的东西吗?
答案 0 :(得分:4)
如果你在谈论Lua的旧版本给出了包含vararg函数接收的所有args的自动arg
这一事实,那么你可以在函数的开头直接local arg={...}
如果要将数组转换为列表,请使用table.unpack
。
所以,你的例子是
function foo(someting,...)
local arg={...}
bar(table.unpack(arg))
end
但这没有多大意义,因为你可以这样做,这更清晰,更简单:
function foo(someting,...)
bar(...)
end