本文主要是介绍golang备忘录001: range for loop copies array,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package mainimport ("fmt"
)func main() {a := [...]int{0, 0}for _, i := range a {fmt.Println(i)a[1] = 42}fmt.Println(a)
}
//Outputs:
//0
//0
//[0 42]
// https://play.golang.org/p/vXoURnJUWk6
数组在range中是拷贝后的副本,即range for
里迭代的对象和a
本身无关
使用slice得到正确的结果,不管是声明时使用[]int{0, 0}
(https://play.golang.org/p/8sqQyatDySv)还是循环时使用range a[:]
(https://play.golang.org/p/_RVhF-0_vTg)
,结果都是
0
42
[0 42]
这篇关于golang备忘录001: range for loop copies array的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!