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

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

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

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

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

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

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

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

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

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

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

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

"])

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

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

相关推荐
Re.不晚11 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
老秦包你会13 分钟前
Qt第三课 ----------容器类控件
开发语言·qt
凤枭香16 分钟前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
ULTRA??20 分钟前
C加加中的结构化绑定(解包,折叠展开)
开发语言·c++
远望清一色36 分钟前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab
confiself1 小时前
大模型系列——LLAMA-O1 复刻代码解读
java·开发语言
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee
杜杜的man1 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*1 小时前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
半桶水专家1 小时前
go语言中package详解
开发语言·golang·xcode