栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将参数传递给函数闭包

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将参数传递给函数闭包

使用闭包与使用函数参数之间的区别在于共享同一变量与获取值的副本有关。请考虑下面的两个示例。

Closure中, 所有函数调用都将使用中存储的值

i
。在任何goroutines有时间打印它的值之前,该值很可能已经达到3。

在“ 参数” 示例中,每个函数调用都将传递进行

i
调用时的值的副本,从而为我们提供我们更可能需要的结果:

关闭:

for i := 0; i < 3; i++ {    go func() {        fmt.Println(i)    }()}

结果:

3
3
3

参数:

for i := 0; i < 3; i++ {    go func(v int) {        fmt.Println(v)    }(i)}

结果:

0
1
2

游乐场: http
//play.golang.org/p/T5rHrIKrQv



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448058.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号