深浅拷贝1.深浅拷贝01.深浅拷贝1.1 深浅拷贝定义浅拷贝就是只拷贝指针的值,指针指向的内容只有一份。而深拷贝是把指针指向的值拷贝一份。golang里面也有浅拷贝和深拷贝。slice的浅拷贝就是指slice变量的赋值操作。slice的深拷贝就是指使用内置的copy函数来拷贝两个slice。1.2 深浅拷贝代码举例package main import "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读写问题 上一篇垃圾回收 下一篇