Command line 如何从命令行向Lua函数传递参数?
我有以下Command line 如何从命令行向Lua函数传递参数?,command-line,lua,command-line-arguments,Command Line,Lua,Command Line Arguments,我有以下test.lua脚本: print("before function") function calc(n) print("in function") print(10*n) end 我试图使用lua test.lua calc 10从命令行执行它,但我得到的唯一输出是: before function 我应该如何获得以下输出: before function in function 100 对于以下代码 m = {} print("before function"
test.lua
脚本:
print("before function")
function calc(n)
print("in function")
print(10*n)
end
我试图使用lua test.lua calc 10从命令行执行它,但我得到的唯一输出是:
before function
我应该如何获得以下输出:
before function
in function
100
对于以下代码
m = {}
print("before function")
function m.calc(n)
print("in function")
print(10*n)
end
m[arg[1]](arg[2])
命令lua test.lua calc 10
将输出:
before function
in function
100
请注意,您的函数从未运行过。如果您想让lua处理命令行参数,您的代码需要读取参数并自行解决问题,可能与:@JDong,那里的解决方案似乎只在交互模式下工作。@Eric,我该怎么做?那么这就是您想要的:?为什么要用表m
使事情复杂化?@lhf,否则它无法工作(假设我在同一个文件中有其他函数)。在这种情况下,您可以使用\u G[arg[1]](选择(2,unpack(arg))
,而不涉及m
。select
unpack
功能允许您提供任意数量的参数。\u G[…](选择(2…)
:)test.lua函数添加(a,b)打印(a+b)结束_G[…](选择(2…)
调用测试添加10 20