Golang的深拷贝与浅拷贝解释
发布者:admin 发表于:453天前 阅读数:869 评论:0

概念

深拷贝:

拷贝的是内存地址存放的数据本身,适用于值类型的数据

值类型的数据,默认都是深拷贝:array,int ,float,bool,string,struct

浅拷贝:

拷贝的是数据所在内存地址

即使拷贝了多份相同的内存地址,都指向到同一片内存空间,适用于引用类型的数据

引用类型的数据,默认都是浅拷贝:slice,map

针对切片的深拷贝函数 func copy(dst, src []Type) int //在目标切片的下标为0的位置,开始粘贴复制的源数据 //内建函数copy将元素从来源切片复制到目标切片中 //copy返回被复制的元素数量,它会是 len(src) 和 len(dst) 中较小的那个

copy(dstSlice[n:],srcSlice[m:]) //通过这种方式,可以将源切片中指定位置的数据拷贝到目的切片的指定位置