arrays - Lua 对象数组
问题描述
我想要一个对象列表,我可以在列表顶部添加一个新对象,所以当我想要这个对象时,我会得到最新的对象。我对lua很陌生。我是怎么理解的。
--input
local dataName = 'deaths'
local data = {
id = 1,
weapon = 'ak'
}
--list
local list = {}
function addlist(data)
cache[dataName] = data
end
这只是替换旧对象。我想要旧的和新的对象。你可以添加
cache[dataName][number] = data
并且只跟踪数字,但是我将如何做到这一点,或者有更好的方法吗?
它只是一个对象数组。
解决方案
您有一个list
不使用的表,并且您使用了一个cache
未在代码段中定义的表。所以我会用我自己的名字来避免混淆。
对于您的列表,您可以使用一个简单的 Lua 表。
local stack = {}
您现在可以通过以下方式将新项目附加到列表中
stack[#stack+1] = newItem
或者
table.insert(stack, newItem)
要将项目添加到最后,只需获取具有最高索引的元素。
local lastItem = stack[#stack]
-- if you want to remove it from the list additionally do
stack[#stack] = nil
或简称:
local lastItem = table.remove(stack)
1
如果您将 nil 分配给and之间的任何索引,这将不起作用#stack
推荐阅读
- r - 查询 HTTR GET 请求 R
- python - 如何在文本文件中的每个文件中打印 10000 行数据
- webclient - FeignCleint 与 WebClient 的优缺点
- mongodb - 在ubuntu上重新安装mongodb服务后失败
- python - 将matlab中的单元格数据转换为python中的数据框的最佳方法
- python - 无法将 datetime.datetime 与 django 中的 datetime.date 进行比较
- c++ - 将函数传递给类中的函数时数据类型不匹配
- amazon-web-services - 用户无权执行:SNS:在资源上发布
- visual-studio - 让视觉工作室检查编码惯例并自动报告/纠正它们
- c++ - 从字符串中删除单词并打印它们的地址