__index
вызывается при обращении в неизменном:Метаметода при доступе ключа, как изменяемый
local foo = bar["foo"];
__newindex
вызываются, когда доступ изменяемого индекса, который не существует:
local bar = { }
bar["foo"] = 123 -- calls __newindex
bar["foo"] = 456 -- does NOT call __newindex
Есть метаметод, который можно вызвать при доступе к ключу как изменяемое время evey, т. е. не только, если ключ еще не существует?
Я хотел бы создать поведение, так что, когда пользователи задают ключ в таблице, вместо этого он вызывает собственный метод, независимо от того, существует ли ключ или нет.
__index и __newindex только огонь, если ключ не имеет значения, связанного с ним. – warspyking