【发布时间】:2018-07-29 18:32:27
【问题描述】:
我对 Lua 中的本地函数有点困惑。请查看以下简化示例。
function test()
local function f()
print("f")
g()
end
local function g()
print("g")
end
f()
end
test()
运行此代码时,函数“f”出现错误,因为函数“g”是 nil 值。据我了解,一旦代码到达对函数“g”的调用,就应该声明这两个函数,并且由于这两个函数还没有到达它们所在的块的末尾(函数“test”),它们仍然应该是无障碍。将函数声明为全局时,此代码可以正常工作,我真的不确定为什么它不适用于本地函数。 《用 Lua 编程》这本书对我也没有帮助。
【问题讨论】: