变参读取
ipairs遍历时,需要遍历的table必须是一个序列,序列的数字索引必须连续,因此当参数出现nil的时候会导致数字索引不连续
这里用select替代ipairs进行遍历 用select函数,获取变长参数的总个数和每个可变实参
local function args(...)
for i, v in ipairs({ ... }) do
print(v)
end
end
local function args2(...)
for i=1, select('#', ...) do
local param = select(i, ...)
print(param)
end
end
print('func arg:')
args(1,2,nil,"222")
print('func2 arg:')
args2(1,2,nil,"222")
output
[aidu35@aidu35 lua]$ lua args.lua
func arg:
1
2
func2 arg:
1
2
nil
222
微信扫一扫,订阅我的博客动态^_^