LUA获取最后一次表格访问/操作时间

现在我有这个函数:

function MyAddon:New()
    local object = setmetatable({}, { __index = self })
    object.elements = { }
    object.lastAccess = os.time()
    return object
end

现在我想每当向“元素”中添加或移除任何东西时,都会自动设置lastAccess,而不是手动设置。我该怎么做?

编辑:

@lhf和@Piglet谢谢。那么这意味着像这样吗?(顺便说一句,这是一个双端队列)

function MyAddon:New()
    local object = setmetatable({}, { __index = self })
    object.lastAccess = 0

    object.elements = { }
    local _elements = object.elements
    object.elements = { }
    setmetatable(object.elements,
    {
        __index = function(t, k)
            return _elements[k]
        end,
        __newindex = function(t, k, v)
            object.lastAccess = os.time()
            _elements[k] = v
        end,
        __mode = "kv",
    })
    return object
end

function MyAddon:GetLastAccess()
    return self.lastAccess
end
点赞