本文共 829 字,大约阅读时间需要 2 分钟。
在Lua中,表的创建是通过构造表达式来完成
——最简单的表是{},用来创建一个空表 ——也可以像创建字典一下初始化一个表 ——也可以像创建数组一样初始化一个表表的索引可以是数字或字符串:
——用键值对方式初始化的表用点或者用中括号(中括号里面必须是字符串)去访问
——用数组方式初始化的表直接用索引下标访问就可以(Lua中的索引下标默认是从1开始,索引可以为负数)表与列表,字典等一样不固定长度大小,可以增添,删除,修改元素
注意:增添元素与删除元素都不会改变索引下标,而插入元素和移除元素会改变索引下标
插入元素会影响之前表中元素的位置
只能用于数组方式初始化的表
移除元素会影响之前表中元素的位置移除元素table.remove与删除元素赋nil的区别:
删除元素赋nil不会删除当前索引下标只是把当前索引下标元素置为nil,而移除元素table.remove会移除当前索引下标的元素,后面的元素依次往前排
排序的表中的元素必须为同一类型(不能同时有数字类型和字符串类型)
table.getn与#相同,都只能获取到下标连续的数组类型的表的长度
将tab1赋值给tab2后相当于tab1与tab2两个变量都引用了同一块内存空间(指向了同一块内存空间)
所以通过tab1和tab2访问的数据是一样的,所以修改了tab1中的索引下标对应的元素也就等同于修改了tab2中的索引下标对应的元素 但是如果只销毁了tab1或者tab2并不代表把它们引用的内存空间销毁,因为当前有两个变量引用着这块内存空间,只是当前销毁的变量不存在了,但是指向的内存空间仍然存在。只有当把这块内存空间的所有引用都销毁了,这块内存空间才会被销毁转载地址:http://ctyvf.baihongyu.com/