专为初学者做的可交互动画:看懂表放在堆上、赋值是多一把钥匙、拷贝才换地址。点按钮逐步演,比干读文字直观十倍。
表就是收纳盒。点击「放进抽屉 / 取出」,观察顺序下标从 1 开始。
local t = {1,2,3,4,5}
隐式主键 1..5,Lua 帮你写好,界面里用抽屉编号表示。
左边是栈上的变量名,右边是堆里的数据块。创建表时,堆上圈地,变量存地址。
「创建表」把 1,2,3,4 放进堆;「打印地址」看变量指向哪一块。
内容再像,两块堆地址不同。比的是「是不是同一只表」,不是长得像不像。
执行 local b = a 后两个变量指向同一堆地址。改 b 就是改 a。
① 创建 a ② b = a ③ b[3] = 100,看 a[3] 是否跟着变。
数字赋值是值拷贝;表赋值是共享地址;浅拷贝只复制第一层。
值类型比内容,表比地址。函数收表参数时,改的就是调用方那只表。
主键连续时 #t 准;断档或字典表时 # 号不可靠。