for _, cg := range consumers {
log.Logger.Infof("%p", cg)
utils.SafeGo(func() {
log.Logger.Infof("%#v", cg)
log.Logger.Infof("%p", cg)
StartConsumer(ctx, cfg.Endpoint, cfg.AccessKey, cfg.SecretKey, cg)
})
}
输出:
0xc000683540
0xc000683560
&queue.Test2{groupName:"test2"}
&queue.Test2{groupName:"test2"}
0xc000683560
0xc000683560
consumers 包含两个元素,值都是指针。 1.22 版本开始 range 每次不是会创建新变量了吗?为什么我 SafeGo 里面 cg 拿到的还是最后一个的值?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.