page contents

for range 的时候它的地址会发生变化么?

轩辕小不懂 发布于 2022-08-09 14:08
阅读 1655
收藏 0
分类:Golang

最佳答案 2023-03-13 10:53

4046
Nen
Nen
- 程序员

在 for a,b := range c 遍历中, a 和 b 在内存中只会存在一份,即之后每次循环时遍历到的数据都是以值覆盖的方式赋给 a 和 b,a,b 的内存地址始终不变。由于有这个特性,「for 循环里面如果开协程,不要直接把 a 或者 b 的地址传给协程」。解决办法:在每次循环时,创建一个临时变量。

请先 登录 后评论