lua 笔记
function Fun1()
local iVal = 10 -- upvalue
function InnerFunc1() -- 内嵌函数
print(iVal) --
end
function InnerFunc2() -- 内嵌函数
iVal = iVal + 10
end
return InnerFunc1, InnerFunc2
end
可以看到闭包是数据和行为的结合体,就好比C++中的类,
这样就使得闭包具有较好的抽象能力,在某些场合下,我们需要记住某次调用完成以后数据的状态,
就好比C++中的static类型的变量,每次调用完成以后,static类型的变量并不会被清除。
使用闭包就可以很好的完成该功能,在下一篇博文中,我将会讲到使用闭包完成迭代器功能。
数据还是静态类型。