Вопросы по теме '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 просмотров
schedule
22.04.2024
Векторный класс 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