解决错误: "outside a vararg function near"

在重构一些我没有编写的 lua(v5.3)代码时,我遇到了一个错误,找不到好的解释/解决方法。这个错误与vararg (...)有关。

local function A()
   args = getargs(...)
   ... some more code
end

A()

我不能在这里粘贴真实的代码,因为它不起作用,但我希望您可以从上面的示例中看到问题:当我将args = getargs(...)封装在A()内部时,我会收到以下错误消息:

cannot use '...' outside a vararg function near '...' 我是 LUA 的新手,但不是编程的新手,所以我觉得这个错误有点奇怪。如果argsgetargs()是全局的,为什么我会收到这个错误,我该如何避免?解决方案不是进一步嵌套getargs()

点赞
用户5697743
用户5697743

你的 真正问题 在于 A() 并没有本身就是 vararg。这段代码应该解决它:

local function A(...) -- 现在这个是 vararg
   args = getargs(...)
   ... 其它一些代码
end

A()

P.S. 为什么不将 args 变量设为 local?argargs 同时存在会很令人困惑!

2018-07-11 18:26:57