lua学习笔记—table

这篇博客详细介绍了Lua中的核心数据结构——table。内容包括table的定义,如何构造数组和映射,以及table的常用操作如concat、insert、remove和sort。此外,还探讨了table的迭代器pairs和ipairs的使用区别,强调了ipairs对于连续索引的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

例2:用table创建映射
这里写图片描述
结果:
这里写图片描述

3、table的常用操作
3.1、table.concat(table,sep,start,end)函数会将table表中下标从start到end的元素以sep(分隔符)连接起来。
例:
这里写图片描述
结果:
这里写图片描述

3.2、table.insert(table,pos,value)函数会在table的数组部分指定位置(pos)插入值为value的元素,pos缺省则默认为数组末尾
例:
这里写图片描述
结果:
这里写图片描述

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

3.4、table.sort(table,comp)函数对给定的table按照comp方式排序,默认是升序
例:
这里写图片描述
结果:
这里写图片描述

4、table的迭代器
table的迭代器有pairs和ipairs两种。因为table中可以同时存在数组和映射两种类型的值,所以pairs可以遍历集合的所有元素,ipairs只能遍历数组元素。
例:
这里写图片描述
结果:
这里写图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值