strmt.__index;
function strmt.__index(self, key)
if type(key) == "number" then
return self:sub(key, key)
end
return prev__index[key]
end
Нет? В мануале только про "good practice" и нюанс с __gc, что без последующего setmetatable() он скорее всего не сработает. It is a good practice to add all needed metamethods to a table before setting it as a metatable of some object. In particular, the __gc metamethod works only when this order is followed. It is also a good practice to set the metatable of an object right after its creation. Если не уверен - делай debug.setmetatable() в конце. Хоть я бы и не делал всю эту канитель с индексацией числами. На моей памяти, jit не очень любит нетривиальные метаметоды, хотя может уже всё и поменялось, это смотреть надо.
а то код был для PUC. скрипт для gdb
Обсуждают сегодня