首先我们应该知道的是执行文件的参数都在 arg这个数组中。arg可以在文件中直接使用
-- 启动 arg作为文件输入参数的数组 arg[1] 表示第一个参数。 arg[2]表示第二个参数
-- 输出数组长度
print(#arg)
-- 逐个输出数组值
for i=1,#arg do
print("参数"..i.." 参数值"..arg[i])
比如上述的文件名为show.lua:
直接lua执行: lua test.lua first second
参数1 参数值first
参数2 参数值second
调用select时,必须传入一个固定的实参selector(选择开关)和一系列
参数
。如果selector为数字n,那么select返回
参数
列表中从索引n开始到结束的所有
参数
列表,否则只能为字符串。
Lua
函数可以接收可变数目的
参数
,和C
语言
类似,在函数
参数
列表中使用三点。同时我们可以将可变
参数
赋值给一个变量。,这样select返回变长
参数
的总数。表示函数有可变的
参数
。输出结果与上述一样。
在
Lua
中,可以通过
命令行参数
的形式向
Lua
脚本传递
参数
。
Lua
提供了一个全局表arg,它是一个数组,其中包含了
命令行参数
。默认情况下,arg[0]包含脚本的名字,而arg[1]开始则是脚本接收的实际
参数
。
问题描述:
写一个函数getArgs(func)返回函数func的行参列表
思路是:利用
lua
的debug库,有一个debug.sethook(hook)函数,在注册的hook函数里面去
获取
参数
列表,于是有了下面的代码:
function getArgs(fun)
local hook = function( ... )
local info = debug.getinfo(2)
Lua
提供了 debug 库用于提供创建我们自定义调试器的功能。
Lua
本身并未有内置的调试器,但很多
开发
者共享了他们的
Lua
调试器代码。crl输出结果:在以实例中,我们使用到了 debug 库的 traceback 和 getinfo 函数, getinfo 函数用于返回函数信息的表。我们经常需要调试函数的内的局部变量。我们可以使用 setupvalue 函数来设置这些局部变量。输出结果:在以上实例中,计数器在每次调用时都会自增1。