获取数组的长度
对于一个数组我们通常可以使用#和table.getn来获取其长度
tabletest = {1,2,3,5,7}
print(table.getn(tabletest)) ------》5
print(#tabletest) ------》5
使用这两种方法都能得到这个数组的长度,但是如果
tabletest = {1,2,nil,3,5,7}
print(table.getn(tabletest)) ------》2
print(#tabletest) ------》2
发现不能获得我们数组真正的长度,这是因为数组默认遇到nil便被判断为数组结束,所以最好不要用#和table.getn来获取包含有nil的数组长度
获取table的长度
对于table来说,如果他不是数组,我们使用#和table.getn是不能获取它的长度的
tabletest = {a=1,b=2,c=3,e=5,f=7}
print(table.getn(tabletest)) ------》0
print(#tabletest) ------》0
我们可以使用pairs来获取
tabletest = {a=1,b=2,c=3,d=5,e=7}
local count=0
for k,v in pairs(tabletest) do
count = count + 1
end
print(count) ------》5
注意,判断一个table是否为空时,不能使用 if val == nil then因为table={}时不是空
可以使用next(val) ==nil来判断
本文介绍在Lua中如何正确获取数组与表的真实长度,包括处理含有nil元素的数组及非数组形式的表,并提供代码示例。
1万+

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



