Луа метатабельная ошибка или особенность?
Если у меня есть эта конструкция:
a.key = b
и к a прикреплен метатабель, а к b прикреплен метатаб. Затем будет вызван метатабельный установщик b для установки ключа на b. Это ошибка lua 5.3.0?
РЕДАКТИРОВАТЬ: а и б строки.
1 ответ
Таблицы и полные пользовательские данные имеют отдельные метатаблицы (хотя несколько таблиц и пользовательских данных могут совместно использовать свои метатаблицы). Значения всех других типов имеют одну метатабельность для каждого типа; то есть существует одна метатабельная для всех чисел, одна для всех строк и т. д. По умолчанию значение не имеет метатабельной, но библиотека строк устанавливает метатаблицу для строкового типа (см. §6.4).
Ответ из документов. Это особенность: a и b были строковыми и, следовательно, разделяли их метатабельно.