Lua闭包运行顺序举例

爷,独闯天下 提交于 2020-01-31 22:43:02

摘自 https://www.cnblogs.com/elvisxu/archive/2011/07/19/2110063.html

xxx = 100
function func()
    local index = 0
    xxx = xxx + 1
    print("Hello")
    return function()
        print(index)
        index = index + 1
    end
end

local inner = func()    --调用func()函数,返回内部函数给inner,打印结果:"Hello"
print(xxx)
print(inner)            --打印结果:function:0037BE88
print(xxx)
inner()                 --调用内部函数,打印结果:0
print(xxx)
inner()                 --调用内部函数,打印结果:1
print(xxx)
print("=================")
local other = func()    --获取另一个内部函数实例,打印结果:"Hello"
print(xxx)
other()                 --调用另一个内部函数实例,打印结果:0
print(xxx)
other()                 --同上,打印结果:1
print(xxx)
Hello
101
function: 00fdb670
101
0
101
1
101
=================
Hello
102
0
102
1
102
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!