文档章节

【更新】引入闭包的目的是什么?

深蓝苹果
 深蓝苹果
发布于 2013/09/16 11:49
字数 317
阅读 297
收藏 7
一直对闭包的引入比较困惑,为何 & 何可为 ?

也许是我理解的不够,也许是我遇到的场景不够,这篇算是对闭包概念说明的比较好的文章(http://blog.codinglabs.org/articles/closure-perspective-of-abstract-mathematic-and-functional-language.html),但也没阐明有何益处~

目前闭包给我留下的概念只有
* 提供匿名函数的实现方式
    - 可将更多的逻辑封装在函数内
    - 减少小函数的数量,代码更紧凑
* 没有减少代码编写量,没有对代码逻辑有明显的简化
* 新概念(相对于大多数coder),耍酷

新的一个参考说明 http://www.cnblogs.com/vamei/archive/2012/12/15/2772451.html

的确发现一些试用场景:如并行计算 之前把lambda和闭包有点混淆。。。

目前理解到的闭包是:

1.一串逻辑处理规则<br/> 2.可带有初始化设置(如初值)<br/> 3.可导出给调用方法执行<br/> 4.不同调用方的执行,不会相互影响,以达到如并行计算的目的(需要具体实现的支持)<br/>

© 著作权归作者所有

上一篇: storm-基本概念
深蓝苹果
粉丝 33
博文 95
码字总数 32473
作品 0
深圳
程序员
私信 提问
加载中

评论(7)

mingshun
mingshun
延长局部变量的生命周期至封闭它的函数对象不再被访问为止。
evilgod528
evilgod528
我觉得闭包可以算是对命令模式的实现,使用过groovy的感受
深蓝苹果
深蓝苹果 博主

引用来自“sokdkotgg”的评论

如果你认识不到闭包的好处,说明你根本不需要闭包,解决方案都是由问题引发的。

场景是一个方面,闭包本身的作用也是一个方面
s
s-k-t
如果你认识不到闭包的好处,说明你根本不需要闭包,解决方案都是由问题引发的。
哆啦比猫
哆啦比猫

引用来自“深蓝苹果”的评论

引用来自“哆啦比猫”的评论

没有闭包如何在纯函数式语言中定义复杂的数据结构呢?

那是不是说闭包的意义仅限于函数式语言呢

非也,我举个例子而已(主要是最近在看MIT的SICP,深受其影响……)。写回调函数时也会经常用到的
深蓝苹果
深蓝苹果 博主

引用来自“哆啦比猫”的评论

没有闭包如何在纯函数式语言中定义复杂的数据结构呢?

那是不是说闭包的意义仅限于函数式语言呢
哆啦比猫
哆啦比猫
没有闭包如何在纯函数式语言中定义复杂的数据结构呢?
React Hooks了解一下?超简单入门Hooks(上)

前言 先简单说一下Hooks是什么,在写React组件时候,有两种写法,一种是类写法,一种就是函数写法,Hooks主要服务的对象还是函数组件,因为函数组件相对类组件有些功能确实不好实现,比如生命...

king帅帅
04/26
0
0
Lambda 将从根本上改变开发 Java 程序的方式

当今世界主流编程语言无不吸纳强大的闭包概念,但有个例外,它就是Java。数年来,Java语言中增加闭包特征的工作看起来毫无进展。 早在15年之前,Scala语言和TypeSafe框架的作者Martin Odersk...

oschina
2012/10/22
5.8K
39
「前端发动机」深入 React hooks — 3 分钟理解 useState

前言 React Hooks的基本用法,官方文档 已经非常详细。本文的目的,是想通过一个简单的例子详细分析一些令人疑惑的问题及其背后的原因。这是系列的第一篇,主要讲解 useState。 个人博客地址...

江三疯
09/16
0
0
什么是闭包,我的理解

首先,我觉得,一个概念,如果不理解也不影响使用的话,那么,就没必要去理解它、去学习它。闭包就是这样一个概念,你不理解它也能很好的用它。俺这两年写as3程序,是天天在和它打交道,甚至...

最美的回忆
2017/11/16
0
0
JavaScript 中的闭包函数

概要 这周看了 《JavaScript 高级程序设计》 的第七章,讲到了 JavaScript 中的一等公民 - 函数的一些特性,在这里进行一下总结。 在一个函数中返回另外一个函数,当我们调用这个函数,我们称...

P.yh
07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Unable to connect to the server: x509: certificate signed by unknown authority

一、问题 当kubeadm安装完k8s后,使用kubectl命令,提示Unable to connect to the server: x509: certificate signed by unknown authority。 二、 解决 配置用户使用kubectl访问集群 $ mkdi...

人中泰迪
51分钟前
5
0
SpringBoot设置项目访问路径

今天配置Springboot项目访问路径遇到一个小坑,这里做一个记录。针对Springboot2.0以下版本和以上版本的配置方式是不同的。这里针对yml配置文件做记录,properties文件配置方式相同。 Spring...

王子城
57分钟前
7
0
Redis 序列化方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedis...

xiaolyuh
今天
5
0
jquery通过css的color属性实现选取特殊颜色的内容

今天一个朋友问到怎么使用jQuery选取特定颜色的内容,以前没有遇到过这样的需求。首先,很多人可能想到使用jQuery属性选择器来实现,这是不可以的,因为 color 是 css 的属性,而不是 html 的...

前端老手
今天
3
0
python3 网络爬虫开发实战 win10环境下 图形验证码识别需要安装的工具及地址

先下载安装tesseract exe文件 tesseract exe文件安装下载地址:https://digi.bib.uni-mannheim.de/tesseract/ win下直接下载双击安装即可,注意路径,下面用于配置环境变量。 参考网址: ht...

S三少S
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部