大家好,我是阿赵。
在使用Lua的过程中,会经常用到可变参数,但如果参数里面夹杂着nil值,会有一些问题会出现。
一、可变参数转数组
在lua里面,如果是需要可变参数,可以用…来代替。这个时候,如果想接收这些参数,可以用一个大括号把三个点括起来,转换成数组,比如这样:
local function TestFun(...)
local arr = {
...}
print(#arr)
end
TestFun(1,2,3,4,5)
输出结果:
5
从上面的例子看转换很成功。但如果传入的参数里面,夹杂着nil,就会出现这样的情况:
local function TestFun(...)
local arr = {
...}
print(#arr)
end
TestFun(1,nil,3,nil,5,nil,7)
输出结果:
1
很明显,传入了7个参数,但转数组后,打印数组长度只有1,那么剩下的6个参数去哪里了呢,是不是就丢失了呢?
使用pairs遍历打印一下试试:
local func
Lua可变参数含nil值的处理方法

最低0.47元/天 解锁文章
2539

被折叠的 条评论
为什么被折叠?



