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

时间:2012-06-22 03:23:44

标签: function lua corona circular-dependency

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

local function foo()
    bar()
end

local function bar()
    foo()
end

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

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

1 个答案:

答案 0 :(得分:7)

请记住

local function FuncName() end

在语法上等同于:

local FuncName = function() end

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

local foo = nil
local bar = nil

foo = function()
    bar()
end

bar = function()
    foo()
end