如何解决Lua中的函数依赖循环?

El'*_*man 3 lua function circular-dependency coronasdk

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

local function foo()
    bar()
end

local function bar()
    foo()
end
Run Code Online (Sandbox Code Playgroud)

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

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

Nic*_*las 7

记住这一点

local function FuncName() end
Run Code Online (Sandbox Code Playgroud)

在语法上等同于:

local FuncName = function() end
Run Code Online (Sandbox Code Playgroud)

因此,声明局部变量很简单,但在声明设置它们的函数值:

local foo = nil
local bar = nil

foo = function()
    bar()
end

bar = function()
    foo()
end
Run Code Online (Sandbox Code Playgroud)