课程入口
🔥 Lua Table 核心课程精华总结(附实战应用场景)
这节课深入讲解了 Lua 的核心数据结构——Table,它是 Lua 编程的“杀手锏”,几乎贯穿所有高级功能。以下是课程精华整理,适合新手快速掌握核心概念,也适合老手巩固知识!
📌 核心知识点
1. Table 是什么?
- 定义:
{}
就是 Table,可以存储任意类型的数据(数字、字符串、函数、甚至其他 Table)。
- 两种形式:
- 数组(Array):隐式数字键(
t = {10, 20, 30}
,t[1]
返回 10
)。
- 字典(Dictionary):显式键值对(
t = {name="张三", age=18}
,t.name
返回 "张三"
)。
2. Table 基本操作(增删改查)
- 增:
t[4] = "新值"
或 table.insert(t, "新值")
- 删:
t[2] = nil
或 table.remove(t, 位置)
- 改:直接赋值
t.name = "李四"
- 查:
t[1]
或 t["name"]
3. 迭代遍历(比 for 循环更强大!)
4. 堆(Heap) vs 栈(Stack)
- 栈:速度快,但空间小(适合临时变量)。
- 堆:空间大,适合存储复杂数据(如 Table)。
- 关键区别:
- 值拷贝(栈):
a = 123; b = a
→ 修改 b
不影响 a
。
- 引用拷贝(堆):
t1 = {}; t2 = t1
→ 修改 t2
会影响 t1
(因为指向同一内存)。
5. 多维 Table(嵌套结构)
- 可以存储 Table 里面再存 Table,模拟二维数组、树形结构等。
matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
print(matrix[2][3]) --> 6
6. Table 的高级应用
- 模拟面向对象:Table 可以存储函数,实现类、方法、继承(后续课程深入)。
- 替代 CSV/配置文件:直接 Lua Table 存储数据,比 CSV 更灵活。
- 动态数据库:全局存储游戏数据、玩家信息等。
📚 下节课预告
模块化 & 面向对象:用 Table 实现类、继承、封装,打造真正的 Lua 高级编程!