1

我已经将 Lua 与 Corona SDK 一起使用了很长时间,但我只下载了独立的 Lua 解释器(从命令行调用)。当我使用

lua main.lua

从 Mac 终端,出于某种原因,任何使用的函数都(...)不再有权访问arg它们的...参数;相反,arg现在指向命令行参数。

我的问题:有没有办法从命令行调用 Lua 并且仍然具有类似的功能

local function myFunction(...)
  print(arg[1])
end

他们指向他们自己的...参数,而不是命令行参数?

4

1 回答 1

1

将这些命令行参数保存在入口点的某个变量或表上怎么样?例子:

local function myFunction(...)
    print(cmd_arg)
end
-- Entry point:
local cmd_arg = arg[1]
myFunction()

或将所有命令行参数收集到表中:

local function myFunction(...)
    print(cmd_arg[1])
end

-- Entry point:
local cmd_args = {}
for _, cmd_arg in arg do
    table.insert(cmd_args, cmd_arg)
end
myFunction()

编辑:这里已经提到了解决方案:https ://stackoverflow.com/a/9787126/1150918

arg自 5.1 以来似乎已弃用。

Michal Kottman 的解决方案是:

function debug(name, ...)
    local arg = table.pack(...)
    print(name)
    for i=1,arg.n do
        print(i, arg[i])
    end
end
于 2013-11-07T18:05:51.473 回答