深浅拷贝 1.深浅拷贝01.深浅拷贝1.1 深浅拷贝定义 浅拷贝就是只拷贝指针的值,指针指向的内容只有一份。 而深拷贝是把指针指向的值拷贝一份。 golang里面也有浅拷贝和深拷贝。 slice的浅拷贝就是指slice变量的赋值操作。 slice的深拷贝就是指使用内置的copy函数来拷贝两个slice。 1.2 深浅拷贝代码举例12345678910111213141516171819202122232425package mainimport "fmt"func main() { SliceShallowCopy() SliceDeepCopy()}func SliceShallowCopy() { src := []byte {1,2,3,4,5,6} dst := src fmt.Println("浅拷贝原始数据",src) // [1 2 3 4 5 6] dst[0]=10 // 修改拷贝数据,原始数据会以前跟着改变 fmt.Println("after modify[src]:",src) // [10 2 3 4 5 6]}func SliceDeepCopy() { src := []byte {1,2,3,4,5,6} var dst = make([]byte, len(src)) copy(dst[:], src) fmt.Println("深拷贝前:",src) // [1 2 3 4 5 6] dst[0]=10 fmt.Println("深拷贝修改拷贝数据值后:",src) // [1 2 3 4 5 6]} Go进阶 #Go进阶 深浅拷贝 http://coderedeng.github.io/2021/02/12/Go进阶 - 深浅拷贝/ 作者 Evan Deng 发布于 2021年2月12日 许可协议 chan读写问题 上一篇 垃圾回收 下一篇