lua 变参读取

变参读取

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

[[email protected] lua]$ lua args.lua 
func arg:
1
2
func2 arg:
1
2
nil
222

wechat
微信扫一扫,订阅我的博客动态^_^