【问题标题】:How can I resolve function-dependency loops in Lua?如何解决 Lua 中的函数依赖循环?
【发布时间】:2012-06-22 03:23:43
【问题描述】:

在我的 Lua 代码中(使用 Corona SDK),我的问题基本上归结为:

local function foo()
    bar()
end

local function bar()
    foo()
end

但是,因为 Lua 是逐行完成的,所以这没有机会工作。此外,我看不到避免这种依赖循环的方法; foo() 创建为触摸事件调用 bar() 的 DisplayObject,它本身具有调用 foo() 的能力。换句话说,我需要能够制作按钮,当被点击时,可以制作更多可以做同样事情的按钮。

此外,我知道 Lua 没有像 C/C++ 那样的函数原型。有关如何解决此问题的任何建议?

【问题讨论】:

    标签: function lua coronasdk circular-dependency


    【解决方案1】:

    记住

    local function FuncName() end
    

    在语法上等同于:

    local FuncName = function() end
    

    所以声明局部变量很简单,但在声明之后设置它们的函数值:

    local foo = nil
    local bar = nil
    
    foo = function()
        bar()
    end
    
    bar = function()
        foo()
    end
    

    【讨论】:

    • 另外请注意,您仍然可以使用function foo () ... end 形式:如果foo 之前声明为本地(使用local foo),它将创建一个本地函数,而不是全局函数。
    猜你喜欢
    • 2012-03-15
    • 2016-09-21
    • 2020-11-12
    • 2021-04-26
    相关资源
    最近更新 更多