сделать так что бы искал в A ?
Таблички по __index просто смотрят, есть ли в другой табличке другой такой ключ, и НЕ делают этого если он там такой был. local t1 = {foo = {e = 1}} local t2 = {foo = {}} setmetatable(t2, {__index = t1}) local foo = t2.foo В t2 нашёлся такой ключ, есть такая таблица, она не имеет никакого отношения к такой же таблице в t1, она не знает что в t1 есть такая же. Но их тоже можно связать. setmetatable(t2.foo, {__index = t1.foo}) print(t2.foo.e) --> 1 Это порождает немножко больше связей, но по крайней мере будет искать ключи. Для автоматики, стоит писать функцию, которая будет рекурсивно связывать все таблицы внутри корневых. Но с одной стороны, это муторно, с другой — не особо нужно.
Обсуждают сегодня