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来判断
相关文章推荐
- 关于lua5.2中table.getn方法不能用的代替方案
- Lua table.getn() 用法
- lua的table长度问题(table.getn)
- lua的Table.getn在MAC上使用问题
- lua table 中#,getn,maxn 的区别
- 关于lua table.getn()和#
- lua中的table.getn()的一些注意事项
- Lua table.getn() 用法
- lua的table.concat坑
- lua table使用记录(3)
- lua之table学习
- lua学习之table类型
- lua中遍历table的几种方式比较
- lua 拷贝table
- 如何判断lua是不是一个纯数组类的table
- 不管是lua还是其它语言,该用结构体的用结构体,不要单独给一个table随便加一个字段
- lua -- 使用remove删除table数据
- 关于lua table的实现
- Lua Table 多字段排序
- cocos2dx lua中table与json互转