初级会员
  • 第 45911 位会员
  • yzqaq
  • 2019-12-03 19:55:59
  • Offline
  • 19 95

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 切片不是深拷贝,你的例子只表明 range 数组时一下子把所有值都读取了,而range 切片时是一次循环读一个。 详细的说,数组时 v的值依次是 1,2,3 ,而切片时 v的值依次是 1 200 3. ```go package main import ( "fmt" ) func main() { type temp struct { field1 string field2 int } temps := []*temp{ { field1: "a", field2: 1, }, { field1: "b", field2: 2, }, { field1: "c", field2: 3, }, } for _, v := range temps { v.field2 = 4 } fmt.Printf("%v %v %v", *temps[0], *temps[1], *temps[2])//{a 4} {b 4} {c 4} } temps2 := []map[int]string{ map[int]string{1: "a"}, {2: "b"}, {3: "c"}, } for _, v := range temps2 { v[4] = "d" } fmt.Printf("%v",temps2)//[map[1:a 4:d] map[2:b 4:d] map[3:c 4:d]] 对v更改后temps2 也被更改了 ```