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