需要帮助将功能堆叠或链接在一起

Need help stacking or chaining functions together

我想知道如何让这样的东西工作:

Test ={}

function Test:returnNumber5 ()
return 5 
end

function Test:add5( num ) 
return num + 5 
end


function randumFunction()
local num = Test:returnNumber5():add5() 
if num == 10 then

print(num)

end 
end

我希望将代码堆叠或链接在一起:

测试:returnNumber5():add5():add5():add5()

我不明白如何设置长函数链。我知道在修改其他游戏时如何打电话给他们并让他们做我想做的事,但不知道为什么它对我的游戏不起作用。我将上面的测试代码放入我的游戏中,它只是让我的游戏崩溃,没有任何细节 使用 Love2D 框架

如果可以请帮忙 谢谢!

首先,您需要构造函数来创建对象:

Test = {}

function Test:new()
  local o = {}
  setmetatable(o, self)
  self.__index = self
  return o
end

第二件事是 return 自己,如果你想使用表格 object:doSomething():doSomethingElse()

Test = {}

function Test:new()
  local o = {}
  setmetatable(o, self)
  self.__index = self
  return o
end

function Test:setNumber5()
  self.num = 5
  return self
end

function Test:add5() 
  self.num = self.num + 5
  return self
end

function Test:value() 
  return self.num
end


function randumFunction()
  local num = Test:new():setNumber5():add5():value()
  
  if num == 10 then
    print(num)
  end 
end