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

Игнорировать метатаблицу в Lua?
Я работаю над меню Lua, и у меня есть класс Menu, который создает такие экземпляры: function Menu:new(label, action, open) local inst = { parent = self, label = label, action = action, open = open or...
468 просмотров
schedule 03.11.2023

допускает ли Lua метаметоды со странным количеством аргументов?
Например, могу ли я объявить метаметод для __index , который принимает два аргумента, а затем сделать что-то вроде myuserdata[somearg1, somearg2] ? Не то, чтобы я хотел его использовать или что у меня есть какие-либо идеи о том, почему это было бы...
293 просмотров
schedule 19.01.2023

Код Lua C API не вызывает функции __newindex, но вызывает другие функции
Я написал некоторый код для разделения регистрации пользовательских функций и функций __newindex и __index на две отдельные функции. Цель моего кода — сделать функции и переменные видимыми для сценариста Lua, которые организованы на основе...
1376 просмотров
schedule 03.12.2022

Какой цели служат метатаблицы в Lua (5.2) для ООП?
Я изо всех сил пытаюсь понять, как работают метатаблицы и зачем они нужны в Lua для создания классов и наследования. Каждый пример ООП, который я нахожу для Lua, немного отличается от предыдущего, но они всегда используют метатаблицы, особенно для...
883 просмотров
schedule 17.06.2022

Наследование от неизменяемых типов?
Я только что ответил на вопрос Python , который "требуется" наследуя класс от int (неизменный тип в Python). В последнее время я занимался Lua, и, отвечая на вопрос, я подумал; "Как это делается в Lua?" Итак, могу ли я наследовать класс от...
72 просмотров
schedule 10.06.2022

Наследовать метатаблицу (класс) и использовать требуемый параметр конструктора
Я нашел этот учебник: http://lua-users.org/wiki/InheritanceTutorial У меня есть метатаблица под названием Creature. Creature требует аргумента в своем конструкторе. Обязательный аргумент — это строка, представляющая имя. local creature =...
749 просмотров
schedule 13.10.2022

Почему короткая форма вызова не работает для таблицы в Lua 5.3?
Луа 5.3 Это не работает, почему? Почему короткая форма вызова не работает для столов? t = { "a", "b", "c" } s = t:concat() это работает ... s = table.concat(t)
205 просмотров
schedule 13.12.2022

Метаметоды и классы
Я создал функцию, аналогичную той, что показана здесь , и у меня возникли проблемы с метаметодом __add. Я хочу иметь возможность использовать метаметод __add для двух экземпляров класса, но единственный способ, которым он работает, — добавить...
91 просмотров
schedule 26.06.2022

Lua, как сделать таблицу классов и создание экземпляров?
Вопрос возник из http://tylerneylon.com/a/learn-lua/ учебника. включает коды: Dog = {dog1 = 'original dog class'} function Dog.new(self, ... ) newObj = {sound = 'woof'} self.__index = self return setmetatable(newObj, self) end...
1901 просмотров
schedule 12.08.2023

Может ли Lua PCall вызывать метафункцию __call, когда я хочу вызвать таблицу из c
Я пытаюсь вызвать таблицу, используя c API и Lua5.1. Я делаю это по следующим шагам: создайте таблицу "mt" с __call метафункцией создайте таблицу "newT" и установите "mt" в метатаблицу "newT" pcall "новыйТ" Моя проблема на шаге 3,...
284 просмотров
schedule 13.08.2022

Lua5.2: учебник Torch дает переполнение стека на основе __index
Я давно хотел попасть в torch и начал с этого учебник . Однако я столкнулся с переполнением стека при запуске кода с функцией setmetatable . Я считаю, что это происходит из-за большого входного файла 50000 изображений, но я могу ошибаться. Я...
78 просмотров
schedule 19.10.2023

Lua - метаметод __newindex для существующего индекса?
Недавно я узнал о существовании methatables в lua и играл с ними, пока мне в голову не пришла идея: можно ли использовать их, чтобы попытаться избежать «дубликатов» в таблице? Я искал и искал и до сих пор не мог найти то, что ищу, так что вот я...
1974 просмотров

Векторный класс LuaJ
Я пытаюсь создать класс Vector для использования с LuaJ. Конечная цель состоит в том, чтобы пользователь не писал много lua и выполнял большую часть работы на моем движке Java. Насколько я понимаю, мне нужно установить метатаблицу для...
109 просмотров
schedule 14.11.2022

метатаблицы lua — первый параметр в функции __index
Я пытаюсь изучить метатаблицы в Lua и наткнулся на следующий пример: - local my_metatable = {} local my_tab = {} setmetatable(my_tab, my_metatable) -- Set the __index metamethod: my_metatable.__index = function (tab, key) print("Hello, " .....
768 просмотров
schedule 22.10.2022

Как изменить метатаблицу таблицы, но наследовать собственные методы в Lua
в Lua мы делаем объектно-ориентированное программирование следующим образом: MyClass = {} function MyClass:new() local obj = {} setmetatable(obj, self) self.__index = self obj.hello = "hello world" return obj end function...
943 просмотров
schedule 25.06.2022

Lua — как мне сломать метатаблицы или сделать их непригодными для использования?
Итак, в моей игре большинство эксплуататоров используют метатаблицы для остановки банов, и я хотел бы их сломать, я их не использую, и это только навредит эксплуататорам. Даже если это сломает другие части lua, я могу и исправлю это, но это нужно...
509 просмотров
schedule 08.05.2022

Как вызвать функцию __metatable?
Моя цель Получите getmetatable , чтобы вернуть возвращаемое значение функции, назначенной полю __metatable . Код: local x, m = {}, {__metatable = function() return nil end}; setmetatable(x, m); io.write("Let's get the metatable:",...
82 просмотров
schedule 26.02.2024

Lua ООП с метатаблицами, проблемы с загрузкой функции из файла
Я пытаюсь сохранить данные в файле, достаточном для создания метатабличного «класса» в таком формате, чтобы его можно было загрузить как функцию. Основная идея здесь: Как загрузить данные из другого lua файл? Мне удалось создать файл и успешно...
54 просмотров
schedule 03.04.2022

Есть ли способ узнать, добавлен или удален ключ из массива в lua?
local t = {} local mt = setmetatable({ -- some meta method to know when a key is added or lost and prints a message }, t) Есть ли способ сделать это. Я говорил об этом с кем-то, и они сказали, что я не могу делать это только с...
64 просмотров
schedule 14.04.2024

Lua изменяет метатабличные свойства из родительской таблицы
У меня есть этот код, но я не хочу, чтобы переменная tbl получала width и height , назначенные ей, скорее я хочу, чтобы свойства width и height base_table изменялись на 200, а не tbl назначались height и width из 200. function...
47 просмотров
schedule 13.10.2022