Lua 可变参数之arg与select
1 function TestFunc(...) 2 local arg = { ... } --Lua 5.2以后不再支持默认arg参数,{}与...之间要有空格 3 print("输入的参数个数:".. #arg) 4 for i, v in ipairs(arg) do 5 print(v) 6 end 7 end 8 print("***************************************"); 9 function TestFunc2(...) 10 print("输入的参数个数:".. select('#', ...)) 11 local count = select('#', ...); 12 for i = 1, count do 13 num = select(i, ...) 14 print(num) 15 end 16 end 17 TestFunc(1, 3, 5, 7, nil, 9) --输出结果 1 3 5 7 9 18 TestFunc2(1, 3, 5, 7, nil, 9) --输出结果 1 3 5 7 nil 9
通过代码可以得出结论:
1.ipairs函数遇到nil停止输出
2.把ipairs换成pairs 发现,输出结果是1 3 5 7 9,得出结论pairs会过滤到nil
3.select(index,...)函数的作用是返回从第i个开始的所有元素,并且会输出nil