Теперь у меня есть эта функция:
function MyAddon:New()
local object = setmetatable({}, { __index = self })
object.elements = { }
object.lastAccess = os.time()
return object
end
Теперь я хочу устанавливать lastAccess
каждый раз, когда что-то добавляется или удаляется из .elements
, не устанавливая его вручную в моей функции добавления / удаления . как я могу это сделать?
edit:
@ 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