Lua学习笔记7-table的长度获取
来源:互联网 发布:玫瑰花茶 知乎 编辑:程序博客网 时间:2024/05/17 23:29
table中长度获取可以使用#来实现,但如果table中有nil就会出现一些奇怪的现象,例如:
local tab ={ 1, nil,}print(#tab)输出结果为:1
local tab ={ 1, nil, 2, nil}print(#tab)
同样输出1
但是继续添加后
local tab ={ 1, nil, 2, nil, 3}print(#tab)输出结果就为5
再添加一个nil结果又变了
local tab ={ 1, nil, 2, nil, 3, nil}print(#tab)结果输出变成了3
所以由上面就可以看出了,在table中加入nil元素是非常危险的,在使用table一定要注意不能加入nil元素。
Lua的table使用中,给一个元素赋值nil就等于删除它,其实这样做是存在危险的,比如使用ipairs迭代遍历就会有提前终止遍历的危险,所以删除table中的元素最好使用table.remove方法来实现。remove方法最大的好处是不会破坏table的有序性,如原有1...n的序列,如果给索引为2的元素赋值nil,则索引为2的地方就为nil,整个序列是“断”的。使用remove删除索引为2的元素后,后面的元素会统一往前移动,整个序列还是“连续”的。
关于table的长度计算中有一些特例,
tab = {1, 2, k1 = 33, 4}print(#tab)得到的长度为3
主要是因为tab混合了列表(list)和记录(record)两种风格,表中k1=33是record风格,并且record是不作为外表的长度计算。
如果将程序改为,
tab = {1, 2, {k1 = 33}, 4}print(#tab)则计算出的长度就为4
这是因为嵌套表也是元素,是会参与到长度的计算。
阅读全文
0 0
- Lua学习笔记7-table的长度获取
- lua中获取table长度的问题
- lua的table长度问题
- lua的table长度问题
- lua的table长度问题
- lua table的长度问题
- lua使用之table长度获取
- Lua中获取table长度问题探讨
- Lua学习笔记--table
- lua的table长度问题(table.getn)
- lua学习笔记之table的遍历
- lua学习笔记table表
- Lua学习笔记之table
- lua学习笔记—table
- lua 求table长度
- lua table 计算长度
- Lua table取长度
- 【Lua学习笔记】 --> 《字符串string与table的函数操作》
- 为什么要浮动,什么时候需要清除浮动,清除浮动都有哪些方法
- C#多态
- C#简单组播例子
- AngularJS操作DOM----angular.element
- 不同情况下批量图片读取 opencv matlab
- Lua学习笔记7-table的长度获取
- java---正则表达式(3)
- Annotations are not supported at this language level
- 错误记录1
- 用yum命令在PuTTY_0.67.0.0中实现远程服务器mysql sever的配置
- (05)oracle新人笔记------子查询练习(重点)
- Spring Boot中使用JavaMailSender发送邮件
- docker加载新的镜像后repository和tag名称都为none的解决方法
- Spring Boot系列(二):web综合开发