加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua之闭包

发布时间:2020-12-14 22:11:37 所属栏目:大数据 来源:网络整理
导读:? 闭包 这个词听起很新颖,我初步理解了这个闭包之后,感觉这个东西就是类样,闭包在lua中主要是 当你定义一个闭包,并创建了这个闭包的变量,闭包里面的值可以保存, 像在C++的里面static变量样,你写static int a = 5,其实这句只运行一次,你后面在执行到

?闭包 这个词听起很新颖,我初步理解了这个闭包之后,感觉这个东西就是类样,闭包在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/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读