Как сделать такую ​​функцию в Lua - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу создать плагин, где кто-то вызывает функцию, передает некоторую информацию вместе с вызовом и делает функцию слушателя, функция должна выглядеть так:

database.execute(database.Update)
:data({username="Jhon"})
:response(function(responseString, responseTable)
    /// 
end)

Я знаю, как сделать базовый вызов функции, подобный этому database.execute(_, _, _), но не знаю, как сделать это многострочным действием, подобным этому

database.execute()
:_()
:_()

1 Ответ

0 голосов
/ 05 ноября 2018

Для совершения многострочных звонков необходимо составить таблицу, как показано в следующем примере:

local mydatabase = { a=1 }
mydatabase.method1 = function( self, param )
    self.a = self.a + param
    return self
end
mydatabase.method2 = function( self, param )
    self.a = self.a * param
    return self
end
mydatabase.method3 = function( self, param )
    self.a = self.a - param
    return self
end

-- A chain of function calls
mydatabase:method1( 3 )
:method2( 2 )
:method3( 5 )

print( mydatabase.a ) -- Should return 3

поэтому метод возвращает таблицу, содержащую методы, используемые для их вызова при возврате

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...