lua 变参读取

变参读取

ipairs遍历时,需要遍历的table必须是一个序列,序列的数字索引必须连续,因此当参数出现nil的时候会导致数字索引不连续

这里用select替代ipairs进行遍历
用select函数,获取变长参数的总个数和每个可变实参

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
[[email protected] lua]$ lua args.lua 
func arg:
1
2
func2 arg:
1
2
nil
222

您的支持将鼓励我继续创作!