function func()
local index = 0
print("Hello")
return function ()
print(index)
index = index + 1
end
end
local inner = func()
print(inner) -- 结果: function: 0037BE88
inner() -- 结果: 0
inner() -- 结果: 1
local other = func()
print(other) -- 结果:
other() -- 结果: 0
other() -- 结果: 1
可以看出函数的局部变量是可以保存在函数内部的,通过调用该函数内嵌的函数可以获取并修改局部变量的值,该函数的局部变量(upvalue)和内嵌函数的组合使用,形成了闭包