lua之闭包
?闭包 这个词听起很新颖,我初步理解了这个闭包之后,感觉这个东西就是类样,闭包在lua中主要是 当你定义一个闭包,并创建了这个闭包的变量,闭包里面的值可以保存, 像在C++的里面static变量样,你写static int a = 5,其实这句只运行一次,你后面在执行到这里就自动跳过了,闭包可以创建N多个变量,每个变量的值又不一样,这就像类了,类有独立空间,里面的值是独立的,跟该类的其他实例无关,除了static的哈,而这闭包呢,差不多就是这意思了。? 不过lua因为它可以 将一个函数赋给一个变量,可以在子函数里访问上一级函数的局部变量,所以就叫闭包了。 闭包看着字面意思就像类,跟类还是有点区别。 function newCounter() ??? local i = 0; ??? return function () ???????????????? ?i = i+1; ???????????????? return i ; ????????????? end end ? c1 = newCounter(); print(c1());?????????? ---------------------1 print(c1());?????????? ---------------------2 c2 = newCounter(); print(c2())??????????? ---------------------1 ?? 理解成类,觉得这东西就不怎么神秘了。 转载自:http://cplusplus2012.blog.163.com/blog/static/2066762682012725105319734/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |