CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
Lua基础Table主键

显式与隐式:Lua 替你写好的主键去哪了

2026-10-18 00:25 作者:吴大圣老师 Lua基础Table主键

写 {1,2,3} 的时候,主键 1、2、3 去哪了?为什么两份看起来一样的表,比起来却不相等?

本课互动训练:专属动画 + 选择题测验。 打开 第 05 课 · 动画闯关,先看动画,再完成 3 道选择题。
配套动画实验室:堆 / 栈 / 引用 / # 号可点可演。 打开 Lua 表 · 堆栈内存动画实验室,对照本文点「播放当前演示」。

一、隐式主键

lua
local t = {1, 2, 3, 4, 5}

等价于:

lua
local t = {
    [1] = 1,
    [2] = 2,
    [3] = 3,
    [4] = 4,
    [5] = 5,
}

Lua 帮你把主键写好了,只是没显示。这叫隐式;你亲手写出 [1]= 这种,叫显式。功能一样,外观不同。

二、为什么内容一样,== 却是 false

lua
local t1 = {1, 2, 3, 4, 5}
local t3 = {1, 2, 3, 4, 5}
print(t1 == t3)  --> false

内容一模一样,怎么不相等?

因为表比较的是内存地址,不是内容。

创建 t1 时,Lua 在内存(堆)里圈了一块地存数据,t1 是指向这块地的「门牌号」。创建 t3 又圈了另一块地。两个门牌号不同,所以 == 为 false。

三、数字、字符串却相等

lua
print(123 == 123)        --> true
print("你好" == "你好")   --> true
print({} == {})          --> false

数字、字符串是按值比,表是按引用(地址)比。这是新手第一个真正要背下来的内存常识。

四、赋值是「多一把钥匙」

lua
local a = {1, 2, 3, 4}
local b = a
print(b[3])  --> 3

b = a 不是把表拷贝了一份,而是让 b 也指向同一块内存。两把钥匙,同一扇门。

于是:

lua
local a = {1, 2, 3, 4}
local b = a
b[3] = 100
print(a[3])  --> 100

改 b 就是改 a。很多「我明明没改它怎么变了」的 bug,都是引用没想清。

五、一句话总结

  • 比内容:以后自己写比较函数(或先比字段)
  • 比是不是「同一只表」:用 ==
  • 赋值 = 共享地址,不是复印

今日练习:写两份相同内容的表,验证 == 为 false;再写 b = a 后改 b[1],观察 a[1] 是否跟着变。


课堂互动训练

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

Lua实战NPC

NPC 界面与 GM 小工具:say / button / link 传参

会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。 一、用 say 吐出界面 客户端编辑器 Ctrl + F…

2026-10-18 01:01 吴大圣老师
Lua基础逻辑运算

与或非:and / or / not 与短路真相

与或非听起来玄,其实就是三张通行证。 一、and(与)= 过安检 机票 + 身份证 ,少一样不让过。后面还能无限加条件。 二…

2026-10-18 01:01 吴大圣老师
Lua基础判断

判断分支实战:if / elseif / else 与防卫语句

判断 = 比较 + 分支。今天把三种 if 写法、以及工程里最好用的「防卫语句」一次练透。 一、三种判断结构 elseif …

2026-10-18 01:01 吴大圣老师
Lua基础Table

从表走到迭代:pairs/ipairs 预告与三大坑

表会建、会取、会增删改查,最后一环是 遍历 。本篇先把坑标出来,下节课正式拆迭代器。 本课互动训练 :专属动画 + 选择题测…

2026-10-18 00:25 吴大圣老师
Lua基础Table

表是引用:改了别人,怎么就跟着变了

「我只改了 b,a 怎么变了?」——这是表引用问题的标准嚎叫。今天把钥匙和锁彻底讲清。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 吴大圣老师
Lua实战Table

玩家背包实战:用表搭一个角色数据库

理论够了,进游戏干一票:用一张表,存下角色的名、级、包、属性,并用它驱动「给我装备」。 本课互动训练 :专属动画 + 选择题…

2026-10-18 00:25 吴大圣老师