关于闭包的简单理解

原创 2016年06月02日 12:06:41

最近因为看到很多关于闭包的概念文章,说一下自己的简单理解。

“闭包”就从字面上的意思上来理解,“闭”即是关闭,“包”即是承包。用大白话来说就是这件事我承包了你们就谁也也插手了,相当于做一件事我去做,我负责到底。

在代码里面就是在嵌套函数的地方

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>


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

简单理解JavaScript中的闭包

闭包(closure),是指有权访问另一个函数作用域的变量的函数。闭包的简单理解就是:函数里面放一个匿名函数。创建闭包的常见方式就是在一个函数里面创建另一个函数。...

js闭包理解之倒计时

  • 2014年07月11日 15:07
  • 587B
  • 下载

Day 19 闭包函数、简单装饰器

一:编写函数(函数执行的时间是随机的) import time import random def fun1(): time.sleep(random.randrange(1,3)) ...

深入理解javascript原型和闭包

  • 2015年11月30日 16:37
  • 1.17MB
  • 下载

闭包的理解

  • 2015年10月24日 21:06
  • 759B
  • 下载

Swift教程_零基础学习Swift完整实例(二)_swift基础(简单值、控制流、方法和闭包)

三、Swift基础介绍 本章将对Swift做一个简单说明,内容取自《The Swift Programming Language》及http://www.chinaz.com/swift/的中文翻译,...

理解_JavaScript_闭包

  • 2011年12月27日 16:37
  • 51KB
  • 下载

简单小结一下关于JavaScript中的闭包

闭包是js中比较难懂的概念,在我看来,这除了他本身确实有难度外,还有一个很大的原因是“闭包”这个翻译,不太亲和,至少对于我来说是如此。 先来看一个定义:当函数可以记住并访问所在的词法作用域时,就产生...

关于JavaScript函数闭包的简单解释

JavaScript中的闭包是一个重要概念,在一些复杂编程中(比如写插件),经常会用到。 闭包的概念并不复杂,但是有一点绕。 闭包主要是要解决私有变量不能被其作用域外部访问的问题。 一个闭包一般有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于闭包的简单理解
举报原因:
原因补充:

(最多只允许输入30个字)