参考Lua中当前未识别的功能

问题描述 投票:0回答:1

我喜欢使用嵌套函数,但是如何处理这样的事情:

addEvent("onQuestion", function() body end)

我想在同一个函数中执行类似removeEvent的操作,但它需要将函数作为第二个参数

addEvent("onQuestion", function()
   do..some..stuff
   removeEvent("onQuestion", thisFunction)
end)
function lua
1个回答
2
投票

如果removeEvent通过提供确切的函数来识别要删除的特定事件函数,那么这就是你必须要做的。所以函数需要存储在某个地方,以便函数可以将它传递给removeEvent

通常看起来像这样:

local function eventFunc()
   do..some..stuff
   removeEvent("onQuestion", eventFunc)
end

addEvent("onQuestion", eventFunc)

如果您想要更通用的解决方案,可以创建一个addSelfRemoveEvent包装函数:

function addSelfRemoveEvent(eventName, func)
  local outer function()
    func()
    removeEvent(eventName, outer)
  end
  addEvent(eventName, outer)
end
© www.soinside.com 2019 - 2024. All rights reserved.