如何在Lua中消除命令行和变量参数的歧义?

时间:2018-08-23 22:39:44

标签: lua arguments luajit

特别是Luajit。 我正在编写脚本作为学习练习,并尝试使用可变参数。但是,这样做只是打印命令行参数。我仔细检查了文档,实际上,两个应用程序都使用arg变量。

如何指定何时要使用一个而不是另一个?

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

输出

0   /.../lua_script.lua
-1  luajit

1 个答案:

答案 0 :(得分:1)

源自Lua 5.1的LuaJIT使用较新的vararg语法,其中您可以将这些varargs手动捕获到表中:

print_r

LuaJIT中的特殊function init (...) local args = { ... } for k, v in pairs(args) do print(k, v) end end 变量仅用于命令行参数。

请参阅LuaJIT FAQ中的第三项。