💓博主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

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



