关于闭包的简单理解
来源:互联网 发布:淘宝更换类目有影响吗 编辑:程序博客网 时间:2024/05/20 10:11
最近因为看到很多关于闭包的概念文章,说一下自己的简单理解。
“闭包”就从字面上的意思上来理解,“闭”即是关闭,“包”即是承包。用大白话来说就是这件事我承包了你们就谁也也插手了,相当于做一件事我去做,我负责到底。
在代码里面就是在嵌套函数的地方
func function() -> (Int) { var rtm = 1 func addone() ->Int { return rtm + 1 } return addone()}
在<pre name="code" class="objc">function函数里面嵌套一个addone函数,rtm作为function函数的变量,在addone函数里面是可以调用到的,这时候在函数里面调用addone函数,就会执行rtm+1的实现
这个时候就是一个闭包,只负责简单的调用,具体的addone实现以及里面的变量访问全部交给addone去处理就行了。
<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px;"><span style="font-family:黑体;margin: 0px; padding: 0px;">在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。</span></p><p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; color: rgb(51, 51, 51); font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14px;"><span style="font-family:黑体;margin: 0px; padding: 0px;">Peter J. Landin 在1964年将术语闭包定义为<span style="color:#ff0000;margin: 0px; padding: 0px;">一种包含环境成分和控制成分的实体</span>。</span></p><span style="color: rgb(255, 0, 0); font-family: 黑体; font-size: 14px;">闭包是从用户角度考虑的一种设计概念,它基于对上下文的分析,把龌龊的事情、复杂的事情和外部环境交互的事情都自己做了,留给用户一个很自然的接口。</span>
0 0
- 关于闭包的简单理解
- 闭包的简单理解
- 闭包的简单理解
- 关于闭包的理解
- 关于闭包的理解
- 关于闭包的理解
- 关于闭包的理解
- 关于闭包的理解
- js闭包的简单理解
- JavaScript闭包的简单理解
- 对闭包的简单理解
- 关于Javascript闭包的理解
- 关于 Javascript 的闭包理解
- 关于js闭包的理解
- 关于lua的闭包自我理解
- 关于js闭包自己的理解
- 关于js闭包的一些理解
- 关于JavaScript闭包的理解
- 如何用ppt做自我介绍
- iOS设计模式 - (4)策略模式
- 【REACT NATIVE 系列教程之十】真机运行报错COMMAND /BIN/SH FAILED WITH EXIT CODE 1 的解决方法
- hihoCoder1252 2015北京区域赛 D.Kejin Game
- C++编程(数组) 去除最大值和最小值,评委的平均分。
- 关于闭包的简单理解
- 单片机存储中的大小端模式
- K-means
- 【REACT NATIVE 系列教程之十一】插件的安装、使用与更新(示例:REACT-NATIVE-TAB-NAVIGATOR)
- Python Print的扩展
- 三层神经网络自编码算法推导和MATLAB实现
- Android EventBus框架(一)之使用详细介绍
- 未发现后门:开源加密软件TrueCrypt安全审计结束
- cmd复制.java并合并为.txt