[lua] cannot use ‘...‘
[lua] cannot use ‘…’
使用可变长参数,遇到如下
cannot use '...' outside a vararg function near '...'
出现问题示例:
local testFn = function(cb)
cb()
end
local testFn2 = function(cb, ...)
testFn(function()
cb(...)
end)
end
引发错误原因:不可以在一个可变长参数函数的外部使用…,因为 … 是匿名的,lua5.1以后不再为vararg自动创建一个表,需要我们手动创建表:
local testFn = function(cb)
cb()
end
local testFn2 = function(cb, ...)
local args = {...}
testFn(function()
cb(unpack(args))
end)
end