调用一个可变长参数的函数。

在我的lua脚本中,我需要调用一个需要任意数量的参数的函数,配合任意数量的参数使用...

我正在将我的参数作为一个表格逐步添加,因为我无法知道会有多少个参数。

样例代码:

local result = call.someFunc();
local arguments = {}

for k,v in pairs(result) do
    table.insert(arguments, v.name)
end

-- 这里我想以某种方式传递整个表格和表格中的每个条目
-- 然后每个条目都将作为单个参数传递给“someOtherFunc”
call.someOtherFunc(arguments[1], arguments[2], arguments[3] ....)

我对lua比较陌生,在PHP中例如我会使用call_user_func_array——lua中有类似的东西吗?

原文链接 https://stackoverflow.com/questions/6086901

点赞
stackoverflow用户200540
stackoverflow用户200540

foo(unpack(arguments)) 等同于 foo(arguments[1], arguments[2], ...)

2011-05-22 08:53:57
stackoverflow用户12048
stackoverflow用户12048

长答案可以在Lua用户维基上找到:VarargTheSecondClassCitizen

这包括尾部的 nil 参数。

2011-05-22 10:07:54
stackoverflow用户686008
stackoverflow用户686008

只需将表格作为参数传递即可。无需将其拆分为单个参数,只需让函数通过表格循环即可。

2011-05-23 11:50:27