数组作为参数列表lua

fhn*_*v24 5 lua arguments lua-table

今天,我正在与lua一起工作,使用那个“ oldesh”作为我的语言,并且确实找到了可以将参数作为数组获取的东西,例如soo:

function foo(someting,...)
    local arrayofargs = arg
    -- code here
end
Run Code Online (Sandbox Code Playgroud)

现在,我很吸引人。这可以通过“其他方式”吗?你可以传递数组,而不是数组,而是像参数列表一样传递:

function bar(a1,a2)
    print(a1+a1)
end

function foo(someting,...)
    local arrayofargs = arg
    bar(arg)
end
Run Code Online (Sandbox Code Playgroud)

是的,你不能那样做。但是我可以在家里做点东西吗?

lhf*_*lhf 5

如果您要谈论的是Lua的旧版本提供了一个自动arg包含vararg函数接收到的所有args 的事实,那么您可以直接local arg={...}在函数的开头进行操作。

如果要将数组转换为列表,请使用table.unpack

所以,你的例子是

function foo(someting,...)
    local arg={...}
    bar(table.unpack(arg))
end
Run Code Online (Sandbox Code Playgroud)

但这没有多大意义,因为您可以做到这一点,这更加清楚和简单:

function foo(someting,...)
    bar(...)
end
Run Code Online (Sandbox Code Playgroud)