马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在Lua函数中, 参数列表使用...来表示变长可选参数, 一般在函数中使用ipairs迭代器处理每一个参数.
但是如果遇到了传入参数包含nil的情况下, 迭代器ipairs就不好用了, 因为他遍历到nil就会终止处理.
此时, 可以使用另外两种方法来解决, 一种是使用table.pack构造新表后, 使用下标序号遍历.
另一种是借助select函数来处理参数, 详见下面代码例子
[Lua] 纯文本查看 复制代码 function foo(...)
print("-------普通方法-------")
for k,v in ipairs{...} do
print(k,v)
end
print("-------方法1-------")
local args = table.pack(...)
for i = 1, #args do
print(i, args[i])
end
print("-------方法2-------")
for i = 1, select("#", ...) do
local arg = select(i, ...)
print(i, arg)
end
end
foo("a","b",nil,"c","d")
|