首页 > 其他 > 详细

lua闭包浅析

时间:2017-02-18 15:36:56      阅读:187      评论:0      收藏:0      [点我收藏+]

lua里面的函数,和c语言的函数其实是不同的概念。在lua里通常讲的函数,其实是指闭包(closure)。

函数只是闭包的原形(prototype)声明。为了方便理解,所以通常讲函数。

 

lua里的函数是一个具有词法定界的第一类值。

第一类值是函数能够存储在变量中,存储在表中,能够作为函数的参数传递,能够作为函数的返回值。

词法定界是指一个嵌套的函数能够访问外部函数的变量。

 

lua的闭包结构如图:

技术分享

GC:垃圾回收相关。

prototype:一个指向原形的指针。原形中包括函数代码,变量,调试信息等。

upvalue:非局部变量。

可以简单理解,闭包是指函数加上函数的upvalue

lua闭包浅析

原文:http://www.cnblogs.com/yao2yaoblog/p/6413190.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!