如何实现语言中的闭包(Closure)

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 01:45:23
如何实现语言中的闭包(Closure)
xnP_%Kt݇ "Y"DUw`4A.?i8M1 b0./s 낕m$KFgsff9U!֞ '*zh+vxt\*ofpWU5PAcT^fQIpf[F1m ҃/HP䜴KN -.r5UnE.p=ZfO˛»G7H7INz %lOVY t.QkWIsromhgwGT˂,r~qE sB++ZL/

如何实现语言中的闭包(Closure)
如何实现语言中的闭包(Closure)

如何实现语言中的闭包(Closure)
现在知道了表的结构之后,让我们看一下程序的执行过程中究竟发生了什么事情.现在我们定义一张全局表global,global在刚开始的时候仅仅有writeln一项.执行了MyClosure=func...的时候global添加了MyClosure,执行到a=MyClosure(1)的时候,MyClosure内部构造了一张表链接到global身上,我们把这张表命名为internal.程序如果能够访问internal就能够访问global,反之不可.所以外部的代码连接到的环境节点是global,而MyClosure里面的东西链接到的节点是internal - global.这个时候闭包已经构造好了,其结构是<内部函数的指针,internal-global.