table长度的研究

可以用长度操作符#和table.getn()获取nil值索引的前一个索引值

比如说:

a = {}
a[6] = 5

print(#a)  --输出0
a[1] = 55
print(#a)  --输出1

也就是说,#和getn()会从table的起始1开始逐步往下找,如果1不存在,那么认为table结束,返回1-1=0;如果1存在,往下找2,2不存在,那么就返回2-1 = 1。

所以,对于有序索引的table可以这样获取到长度,对于,东缺西缺的,这能遍历获取了。

i = 0
for k,v in pairs(a) do --a是table
i = i+1
end
print(i)

首页 我的博客
粤ICP备17103704号