Вопросы по теме 'metatable'

Можете ли вы сравнить типы таблиц или метатаблиц в Lua?
Я вызываю функцию API в функции сценариев Beta Lua Lord of the Rings Online (LOTRO). Метод API возвращает «тип», называемый ClassAttributes, который будет одним из заданных «типов» атрибутов класса. Я говорю «типы», потому что когда я вызываю...
959 просмотров
schedule 16.05.2022

Как я могу преобразовать каждый индекс в таблицу с помощью метатаблицы?
Я пытаюсь написать метатаблицу, чтобы все индексы в таблице были сдвинуты вверх на одну позицию (т.е. t[i] должно возвращать t[i+1] ). Мне нужно сделать это, потому что таблица определена с использованием индекса 1 в качестве первого элемента, но...
226 просмотров
schedule 03.02.2023

Corona SDK как удалить объект?
Что ж, у меня возникли проблемы с удалением объекта из игры, дело в том, что у меня есть класс игрока (сделанный из метатаблицы), внутри него у меня есть переменная с именем спрайт, которая содержит адрес спрайта изображения, который я буду рисовать...
7998 просмотров
schedule 24.07.2022

Функция Lua OOP не вызывается?
Я использую Lua и LuaBridge с Allegro 5. Я решил портировать все графические объекты на Lua, но столкнулся с некоторыми проблемами: Класс символов, который вызывается один раз Character = {sprite; AI} function Character:new() o = o or {} --...
472 просмотров
schedule 07.06.2022

Не знаете, как насчет метатаблиц Lua на стр. 108 книги "Программирование на Lua"
Я изучаю Lua по книге Программирование на Lua, первое издание . У меня проблемы с пониманием метатаблиц. Это код и пояснения, которые появляются на странице 108: Set = {} function Set.new (t) local set = {} for _, l in ipairs(t) do...
259 просмотров
schedule 17.11.2022

Сравните значение с таблицей, используя метатаблицы в Lua.
Я ищу способ в Lua 5.1 сравнить с метатаблицами, чтобы я мог сравнить любое значение с таблицей. Если это значение находится в таблице, оно возвращает true и false, если его нет в таблице. как следующее. if table == string then -- does...
397 просмотров
schedule 30.09.2022

какова фактическая реализация lua __pairs?
Кто-нибудь знает фактическую реализацию lua 5.2. метаметод __pairs ? Другими словами, как мне реализовать __pairs как метаметод в метатаблице, чтобы он работал точно так же с pairs() ? Мне нужно переопределить __pairs и пропустить некоторые...
4132 просмотров
schedule 01.09.2022

Метатабличная проблема
Итак, я знаю, что lua будет искать метатаблицу таблицы, если она не содержит переменной, на которую я ссылаюсь, но кажется неправильным, что когда я пытаюсь установить переменную, которая еще не существует в таблице, вместо этого она устанавливает ее...
115 просмотров
schedule 12.05.2022

Почему это вызывает переполнение стека C?
Я знаю, что могу решить эту проблему, используя rawset , но мне просто интересно, почему следующий код вызывает переполнение стека C. local mt = { __newindex = function(self, key, value) self[key] = value end } local x =...
110 просмотров

Метатаблица Lua, как перенаправить неопределенные функции?
У меня есть пустая таблица, которую я хочу использовать как «шлюз» для другого набора функций в другом месте. tbl = {} Я хочу передать вызываемые функции из этой таблицы в другое место в виде строки: tbl.someMethod("hello") Я...
324 просмотров
schedule 02.03.2023

Метатаблицы, попытка вызвать метод rename (нулевое значение)
Я впервые использую метатаблицы, я сделал простой скрипт для тестирования в демо Lua, но он всегда дает мне «попытку вызвать метод 'rename' (нулевое значение)», почему? peds = {} function peds.new ( name ) local tb = { name = name }...
464 просмотров
schedule 26.09.2022

Справочная таблица Lua внутри метатаблицы
У меня сейчас довольно умопомрачительная установка. У меня есть обычная функция, которая возвращает таблицу с функциями в ней под ключами "строка" и "число": function defGeneric() local function funcNumber(a) return 2*a^2 end...
342 просмотров
schedule 16.05.2022

как сделать так, чтобы __index и __newindex обнаруживали table.index
Я все еще немного новичок в метатаблицах, и есть кое-что, что меня смущает. когда я использую метаметоды, такие как __index и __newindex в своей метатаблице, они вызываются только тогда, когда я вызываю элемент таблицы следующим образом:...
114 просмотров
schedule 12.06.2022