中文编程入门(Lua5.4.6中文版)第十章 Lua 表格 参考模拟人牛游戏

在《模拟人牛:编程冒险》中,你扮演一位程序大神,在虚拟的代码世界里构建和操作神奇的数据结构------Table。这种强大的结构就像是你的魔法书,用来存储和组织各种类型的信息,如角色属性、物品清单,甚至是整个城市规划布局。

想象一下,你正在设计一个模拟市民的生活环境:

复制代码
-- 初始化一张空的生活记录表
局部 生活记录表 = {}

-- 添加一些基本信息
生活记录表["名字"] = "小明"
生活记录表["年龄"] = 25
生活记录表["职业"] = "程序员"
-- 记录每日心情状态,就像一个动态数组
生活记录表[1] = "快乐"
生活记录表[2] = "平静"
生活记录表[3] = "兴奋"

-- 创建另一个表格来表示小明的家当
局部 家当 = {}
家当["高级电脑"] = "高级游戏本"
家当["车"] = "红色跑车"

-- 把这个新的表格关联到生活记录表中
生活记录表["家当"] = 家当

-- 显示当前的心情状态
输出("今天小明的心情是:" .. 生活记录表[3])

-- 现在我们把小明的车升级了
生活记录表["家当"]["车] = "蓝色豪华超跑"

-- 打印出更新后的小明的汽车信息
输出("小明现在的座驾是:" .. 生活记录表["家当"]["car"])

-- 当不需要这些记录时,可以解除引用
生活记录表 = 虚

-- 此时Lua的垃圾回收机制会自动清理与生活记录表相关的内存资源
-- 但只要还有其他变量(如`家当`)引用到原来的table数据,这些数据就不会被立即清除
-- 即使生活记录表被设为nil,只要家当还在,我们仍能查询到汽车信息
输出("即使生活记录表已被释放,小明的座驾依然存在:" .. 家当["车

"])

-- 最终,当我们不再需要家当时
家当 = 虚

通过灵活运用Lua中的Table操作方法,你可以轻松地管理和扩展这些数据结构,就像在游戏中管理模拟市民的各种生活细节一样。例如,使用table.concat将一系列事件串联起来形成故事线,用table.insert添加新的人生经历,或者用table.sort对成就进行排序等。而当你不再需要某个Table时,只需解除其引用,Lua的垃圾回收机制就会帮你清理相应的内存空间。

相关推荐
坐吃山猪1 天前
SpringBoot01-配置文件
java·开发语言
晚风(●•σ )1 天前
C++语言程序设计——06 字符串
开发语言·c++
我叫汪枫1 天前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
Nicole-----1 天前
Python - Union联合类型注解
开发语言·python
晚云与城1 天前
今日分享:C++ -- list 容器
开发语言·c++
兰雪簪轩1 天前
分布式通信平台测试报告
开发语言·网络·c++·网络协议·测试报告
FPGAI1 天前
Qt编程之信号与槽
开发语言·qt
Swift社区1 天前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
0wioiw01 天前
Go基础(④指针)
开发语言·后端·golang
How_doyou_do1 天前
数据传输优化-异步不阻塞处理增强首屏体验
开发语言·前端·javascript