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

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

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

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

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

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

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

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

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

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

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

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

"])

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

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

相关推荐
AAA.建材批发刘哥几秒前
02--C++ 类和对象上篇
开发语言·c++
廋到被风吹走3 分钟前
【Java】【JVM】垃圾回收深度解析:G1/ZGC/Shenandoah原理、日志分析与STW优化
java·开发语言·jvm
xrkhy4 分钟前
Java全栈面试题及答案汇总(3)
java·开发语言·面试
菩提祖师_8 分钟前
量子机器学习在时间序列预测中的应用
开发语言·javascript·爬虫·flutter
刘97538 分钟前
【第22天】22c#今日小结
开发语言·c#
明天好,会的15 分钟前
分形生成实验(三):Rust强类型驱动的后端分步实现与编译时契约
开发语言·人工智能·后端·rust
YanDDDeat19 分钟前
【JVM】类初始化和加载
java·开发语言·jvm·后端
枫叶丹423 分钟前
【Qt开发】Qt系统(三)->事件过滤器
java·c语言·开发语言·数据库·c++·qt
wjs202424 分钟前
CSS Position(定位)
开发语言
亓才孓25 分钟前
继承父类和接口,又冲突的变量名怎么解决
java·开发语言