数组作为参数列表lua

时间:2014-03-10 18:21:13

标签: lua arguments lua-table

今天我和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

是的,你不能这样做。但是我可以做一些像这样的东西吗?

1 个答案:

答案 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