如何在 Lua 中区分命令行参数和变量参数?

具体来说,Luajit。 我正在编写一个学习练习脚本,并尝试使用变量参数。 但是,这样做只会打印出“命令行”参数。 我仔细检查了文档,确实,两个应用程序都使用“arg”变量。

我该如何指定我要使用哪个参数?

function init(...)
    for k,v in pairs(arg) do print(k,v) end
    -- Function body.
end

输出:

0   /.../lua_script.lua
-1  luajit
点赞
用户2796594
用户2796594

LuaJIT源于Lua 5.1,使用新的vararg语法,其中你需要手动将varargs捕获到一个表中:

function init (...)
  local args = { ... }
  for k, v in pairs(args) do print(k, v) end
end

在LuaJIT中,特殊的 arg 变量只用于命令行参数。

请参阅LuaJIT FAQ中的第三项。

2018-08-23 22:50:45