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类型的变量并不会被清除。
使用闭包就可以很好的完成该功能,在下一篇博文中,我将会讲到使用闭包完成迭代器功能。

数据还是静态类型。
posted @ 2017-05-11 20:35  琴鸟  阅读(137)  评论(0编辑  收藏  举报