如何在 Lua 中创建这样的函数

我想创建一个插件,当有人调用函数并将一些信息与调用一起传递并创建一个监听器函数时,函数必须如下所示:


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

我知道如何创建像 database.execute(_, _, _) 这样的基本函数调用,但不知道如何创建这样的多行操作

database.execute()
:_()
:_()
点赞
用户6782242
用户6782242

为了进行多行调用,您需要创建如下示例的表格:

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

-- 函数调用链
mydatabase:method1( 3 )
:method2( 2 )
:method3( 5 )

print( mydatabase.a ) -- 应该返回 3

因此,当返回时方法返回包含用于调用它们的方法的表。

2018-11-05 12:39:17