Lua 对象数组

我想要一个对象列表,我可以在顶部添加一个新对象,所以当我想要该对象时,我会得到最新的对象。我对 Lua 很陌生。我了解到的做法是:

--输入
local dataName = 'deaths'
local data = {
    id = 1,
    weapon = 'ak'
}
--列表
local list = {}

function addlist(data)
    cache[dataName] = data
end

这只是替换了旧对象。我想要旧的和新的对象。您可以添加

cache[dataName][number] = data

并跟踪数字,但我该如何做,或者有更好的方法吗?

它只是一个对象数组。

原文链接 https://stackoverflow.com/questions/69865949

点赞
stackoverflow用户2858170
stackoverflow用户2858170

你有一个未使用的表list,并且你使用了一个未在代码片段中定义的表cache。所以我将使用自己的名字以避免混淆。

你可以使用一个简单的 Lua 表来表示列表。

local stack = {}

现在可以通过以下方式向列表中添加一个新项

stack[#stack+1] = newItem

或者

table.insert(stack, newItem)

要获取添加的最后一个项,只需获取具有最高索引的元素。

local lastItem = stack[#stack]
-- 如果还要从列表中删除它,请使用以下语句:
stack[#stack] = nil

或者使用简写:

local lastItem = table.remove(stack)

如果将 1#stack 之间的任何索引赋值为 nil,则这种方法不起作用。

2021-11-06 17:00:05