lua学习笔记—table

1、什么是table
table是lua的一种数据结构,可以用来创建数组或映射。lua中的table使用的是关联型数组。关联数组的key值可以是除过nil之外任意类型的值。table的大小是不固定的,可以自己进行扩容。

2、如何构造table
可以使用”{}”来构造一个空表,还可以在构造的同时进行初始化。
例1:用table创建数组,在lua中数组下标默认从1开始
lua学习笔记—table_第1张图片
结果:
这里写图片描述

例2:用table创建映射
lua学习笔记—table_第2张图片
结果:
lua学习笔记—table_第3张图片

3、table的常用操作
3.1、table.concat(table,sep,start,end)函数会将table表中下标从start到end的元素以sep(分隔符)连接起来。
例:
lua学习笔记—table_第4张图片
结果:
lua学习笔记—table_第5张图片

3.2、table.insert(table,pos,value)函数会在table的数组部分指定位置(pos)插入值为value的元素,pos缺省则默认为数组末尾
例:
lua学习笔记—table_第6张图片
结果:
lua学习笔记—table_第7张图片

3.3、table.remove(table,pos)函数会返回位于pos位置的元素,其后的元素会被前移。pos缺省情况下删除最后一个元素。

3.4、table.sort(table,comp)函数对给定的table按照comp方式排序,默认是升序
例:
lua学习笔记—table_第8张图片
结果:
lua学习笔记—table_第9张图片

4、table的迭代器
table的迭代器有pairs和ipairs两种。因为table中可以同时存在数组和映射两种类型的值,所以pairs可以遍历集合的所有元素,ipairs只能遍历数组元素。
例:
lua学习笔记—table_第10张图片
结果:
lua学习笔记—table_第11张图片

5、ipairs只能按照索引升序遍历,如果索引中断则停止遍历。也就是ipairs遇到nil就退出
例:用ipairs遍历一个索引不连续的数组
lua学习笔记—table_第12张图片
结果:只输出前面的值,因为ipairs要求索引连续
这里写图片描述

你可能感兴趣的:(lua学习,c/c++基础)