需要帮助将函数堆叠或链接在一起

我想知道如何让以下代码起作用:

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

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

Test:returnNumber5():add5():add5():add5()

我不懂如何设置长链式函数。我知道如何调用它们,并在修改其他游戏时让它们按照我想要的方式运作,但不知道为什么它在我的游戏中不起作用。我将上面的测试代码放入我的游戏中,但它只是崩溃了,没有详细信息 使用 Love2D 框架

如果您能帮忙我,感谢!

原文链接 https://stackoverflow.com/questions/69511484

点赞
stackoverflow用户7746452
stackoverflow用户7746452

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

Test = {}

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

其次,如果你想使用形式 对象:做某事():做其他事(),需要返回 self。

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
2021-10-10 04:32:56