最近发布的主题
暂无
最近发布的文章
暂无
最近分享的资源
暂无
最近发布的项目
暂无
最近的评论
-
评论了博文 Golang 切片与函数参数"陷阱"你好: 我想提一个疑问,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> 请您指正哈~