【问题标题】:Referencing to the current unidentified function in Lua引用 Lua 中当前未识别的函数
【发布时间】:2019-08-14 22:07:34
【问题描述】:

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

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

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

addEvent("onQuestion", function()
   do..some..stuff
   removeEvent("onQuestion", thisFunction)
end)

【问题讨论】:

    标签: function lua


    【解决方案1】:

    如果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
    

    【讨论】:

    • @EgorSkriptunoff:已修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2012-05-03
    • 2016-12-23
    相关资源
    最近更新 更多