频道栏目
首页 > 网络 > 云计算 > 正文

关于golang闭包所谓的“坑”

2017-03-17 10:06:09           
收藏   我要投稿

关于golang闭包所谓的“坑”,昨天听了某企业架构师关于golang的经验分享,听到架构师吐槽golang里的闭包是个大坑,对此有点不同看法。

先贴上一段关于闭包的定义:

闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。

对于没有闭包概念的语言从业者来说,可能会觉得闭包是个坑,但对于了解闭包的程序员来说,这就是闭包的性质而已,没有什么值得大肆吐槽的。在go语言中提供了对闭包的支持,从个人经验来看,闭包在有些场景下还是很有用的。

下面提供一个小例子,说明下闭包在go中的使用。

第一个例子:由于闭包对变量的使用特性,导致不管执行多少次循环,闭包获取的总数最后一次循环后变量i的值3。

\

第二个例子:如果想获取期望的变量值,只要将变量i作为匿名函数的参数传入,即可。

\

当然,为了看得更清楚,可以修改下传参的名称(如下图)。

\
上一篇:hadoop环境搭建过程及搭建过程遇到的问题及解决的办法
下一篇:Hadoop基本使用(一)环境配置-单机版
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站