【lua语言基础(三)】表和函数

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:lua从入门到精通

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学更多lua语言的知识
  🔝🔝


1. 初识lua的表

表(table)是lua语言中最重要(事实上也是唯一的)和强大的数据结构. lua语言可以使用表来表示数组, 链表, 栈和队列, 图等数据结构.

lua语言中, 表的本质上是一种辅助数组, 此数组不仅可以使用数值作为索引, 还可以使用字符串或其他任意类型的值作为索引(ni除外). 并且lua语言的表不会进行隐藏的深拷贝,这一点后面会体现到

> a = {
   
   }  -- 创建一个表
> k = "x"
> a[k] = 10  -- 新元素, key是x, value是10
> a["y"] = 20  -- 新元素, key是y, value是20
> a["x]  -- 10
> a[20] = 30  --新元素, key是20, value是30

表永远是匿名的, 表本身和保存表的变量之间没有固定的关系:

> a = {
   
   }
> a["x"] = 10
> b = a  -- b和a引用的是同一张表, 此表变化后, a和b都会发生变化
> b["y"] = 20
> a["y"]  -- 20

对于一个表而言, 当程序中不再有指向他的引用时, 垃圾回收器会删除此表, 并释放其空间


2. 表索引

同一个表中存储的值可以具有不同类型的索引, 并且可以按需增长

a = {
   
   "a","b","c","d","e"}
a[1]  -- "a"
a[2]  -- "b"
......
b = {
   
   "x" = 10,"y" = 20,30,40,50}
b["x"]  -- 10
b["y"]  -- 20
b[1]  -- 30
b[2]  --  40

当我们把表当中结构体使用时, 可以把索引当作成员名称使用(a.name等价于a[“name”]), 因此可以用更简洁的方法来读取表中数据. 初学者经常会将a.x和a[x]混淆. 事实上, a.x代表的是a[“x”]. 即由字符"x"索引的表, 而a[x]则是由变量x对应的值索引的表. 请注意, 索引0和索引"0"是两个不同的索引

a["x"] = 10
a["y"] = 20
a.x  -- 10
x = "y"
a[x]  -- 20
a
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭电码农-NEO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值