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

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

local function foo()
    bar()
end

local function bar()
    foo()
end

但是,由于 Lua 是按行完成的,这几乎没有可能工作。此外,我看不到避免此依赖循环的方法;foo() 创建 DisplayObjects,这些 DisplayObjects 对于触摸事件会调用 bar(),bar() 本身具有调用 foo() 的功能。换句话说,我需要能够创建按钮,并在点击时创建更多按钮,这些按钮可以执行相同的操作。

此外,我知道 Lua 没有像 C/C++ 中的函数原型。有什么建议来解决这个问题吗?

点赞
用户734069
用户734069

记住:

local function FuncName() end

在语法上等同于:

local FuncName = function() end

因此,只需声明局部变量,然后在声明之后设置它们的函数值:

local foo = nil
local bar = nil

foo = function()
    bar()
end

bar = function()
    foo()
end
2012-06-22 05:34:28