Lua 中有没有一种方法可以随意将本地函数放入任何顺序?

Lua 与我使用的其他语言之间的一个不同之处似乎在于,变量和函数声明的顺序非常重要。在函数中,您无法访问在函数之后声明的本地变量。例如:

local function foo()
 return bar
end
local bar = 4
print(foo()) -- 输出 nil 而不是 4

如果您尝试从在之前声明的函数中访问本地函数,也是如此。

在某些情况下,如果您谨慎关注声明事项的顺序,所有这些都可以解决。但是,如果您有两个或多个需要彼此调用的函数,那么这些函数必须是全局的,还是有一些方法可以使用本地函数完成这个问题?

点赞
用户2122672
用户2122672

好的,我解决了。这只是在定义之前声明的问题。我不确定这对函数是否有效,但我应该知道。

local foo, bar
function foo(a)
 print 'foo'
 if a == 3 then
  bar(4)
 end
end
function bar(b)
 print 'bar'
 if b == 4 then
  foo(2)
 end
end
foo(3)
-- foo
-- bar
-- foo
2016-12-10 00:13:15