Луа метатабельная ошибка или особенность?

Если у меня есть эта конструкция:

a.key = b

и к a прикреплен метатабель, а к b прикреплен метатаб. Затем будет вызван метатабельный установщик b для установки ключа на b. Это ошибка lua 5.3.0?

РЕДАКТИРОВАТЬ: а и б строки.

1 ответ

Решение

Таблицы и полные пользовательские данные имеют отдельные метатаблицы (хотя несколько таблиц и пользовательских данных могут совместно использовать свои метатаблицы). Значения всех других типов имеют одну метатабельность для каждого типа; то есть существует одна метатабельная для всех чисел, одна для всех строк и т. д. По умолчанию значение не имеет метатабельной, но библиотека строк устанавливает метатаблицу для строкового типа (см. §6.4).

Ответ из документов. Это особенность: a и b были строковыми и, следовательно, разделяли их метатабельно.

Другие вопросы по тегам