Lua学习笔记--table

本文是Lua学习笔记,重点探讨了table的使用,包括table的简介、构造方式、table的table概念以及两种遍历方法——数组型遍历和迭代器遍历,详细阐述了table在Lua中的核心地位和常见操作。
摘要由CSDN通过智能技术生成

Lua只有一种数据结构,叫table。但是他灰常强大,足以满足我们一般的要求,而且可以根据table做出其他的效果。

一.简介

table类型实际上是一种关联数组,是一种具有特殊索引方式的数组,不仅可以通过整数来索引,还可以通过字符串等其他类型(除了nil)来索引。table没有固定大小,可以动态添加元素。
table可以被理解为一个对象,程序使用一个引用来使用table,这个引用是基于引用计数的。如果一个table没有被引用,那么Lua的垃圾回收机制会清除table并回收其内存。
创建table是通过构造式来创建的。
先来看看传统的C语言的方式的数组用法:
--创建一个table,并将其引用使用a保存
a = {}
--向table中添加三条数据
a[1] = "hehe"
a[2] = "haha"
a[3] = "heihei"

--输出
for i = 1,3 do
	print(a[i])
end
结果:
hehe
haha
heihei
请按任意键继续. . .

but Lua的数组的索引可以是其他类型的,类似dictionary的功能。下面是使用字符串作为索引:
--创建一个table,并将其引用使用a保存
a = {}
--table中的索引不仅限于number,使用其他类型的数据也可以作为索引 
a["hehe"] = "heihei"
local i = "hh"
a[i] = "haha"

local t = "hehe"
print(a[t])
print(a["hh"])
结果:
heihei
haha
请按任意键继续. . .


一个非常容易出错的地方:

一种简便的写法:a.name <&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值