В языке Lua, я могу определить функции в таблице с чем-то таким, какметоды Определение Lua как инициализации
table = { myfunction = function(x) return x end }
Я задавался вопросом, могу ли я создал методов, таким образом, вместо того, чтобы сделать это как
function table:mymethod() ... end
Я довольно уверен, что можно добавлять методы таким образом, но я не уверен в правильном названии этого метода, и я не могу найти его ищет «Lua» и «методы» или такие.
Мое намерение состоит в том, чтобы передать таблицу функции, такой как myfunction({data= stuff, name = returnedName, ?method?init() = stuff})
.
К сожалению, я пробовал несколько комбинаций с объявлением двоеточия, но ни один из них не является допустимым синтаксисом.
Итак ... кто-нибудь здесь знает?
О, это работает. ... я искал сложное решение, когда все так просто. Гм. Большое спасибо! – viktorry
Просто комментарий - при создании «методов» первый параметр обычно называется «я». Это то, что делает сабкант функции tab: method(). Если вы хотите называть его «:», создайте свою функцию как таковую: tab = {f = function (self, x) return x end} и вызовите как tab: f (x). –