初级会员
  • 第 13528 位会员
  • hiyanxu
  • 2017-10-22 09:35:08
  • Offline
  • 19 95

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 你好: 我想提一个疑问,copy函数在复制时,应该并不关心底层数组。像您上面的例子slice4 := make([]int, len(slice2)) copy(slice4, slice2),此时slice4是通过make函数创建出来的切片,底层肯定是一个新的匿名数组,所以,对slice1的修改不会影响到slice4。 但是如果: <pre><code> var s1 = []int{1, 2, 3} var s3 = s1[0:2] copy(s3, s1) fmt.Printf("s1:%v, %p, s3:%v, %p\n", s1, &s1, s3, &s3) s3[0] = 10 fmt.Printf("s1:%v, %p, s3:%v, %p\n", s1, &s1, s3, &s3) </code></pre> 此时s3是基于s1创建的切片,对s3的复制操作后,对s3重新赋值,仍然会影响到s1。 输出: <pre><code> s1:[10 5 3], 0xc00006c020, s3:[10 5], 0xc000094000 </code></pre> 请您指正哈~