您的位置:首页 > 编程语言 > Lua

lua 中的#和table.getn

2017-10-24 18:19 489 查看

获取数组的长度

对于一个数组我们通常可以使用#和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来判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: