Метатаблицы


Метатаблица - это таблица вида {событие=метод-обработчик},
которая определяет возможные действия над любым значением

Метатаблица позволяет перекрывать операции (ключи):

"add", "div", "mul", "sub", "pow", "unm" (унарный минус),
"concat" (конкатенация ..), "len" (размер таблицы #table),
"eq" (==), "lt", "le", "gt", "ge", "index" (доступ по индексу),
"newindex", "call"

* getmetatable(), setmetatable()

получение значения по ключу из метатаблицы:

* metatable(obj)[event] -- или
* rawget(getmetatable(obj) or {}, event)

Кроме метатаблиц, есть еще таблицы-окружения,
доступ к которым возможен через функции setfenv(), getfenv()