明确概念
深拷贝:仅对值进行拷贝,并创建一个新的对象,新对象和被拷贝的对象指向不同的地址。
浅拷贝:同时对值和地址进行拷贝,创建一个新的对象指向被拷贝对象的地址。
Golang中深拷贝和浅拷贝的数据类型都有哪些呢?
浅拷贝一般都是引用类型,通常分配在堆上,通过GC(垃圾回收机制)回收,例如:指针、slice、map、chan等都是引用类型
深拷贝是值类型的,通常分配在栈上,比如,数组,int ,bool, struct等
值得注意的是Go中的append和copy也都是深拷贝
明确概念
深拷贝:仅对值进行拷贝,并创建一个新的对象,新对象和被拷贝的对象指向不同的地址。
浅拷贝:同时对值和地址进行拷贝,创建一个新的对象指向被拷贝对象的地址。
Golang中深拷贝和浅拷贝的数据类型都有哪些呢?
浅拷贝一般都是引用类型,通常分配在堆上,通过GC(垃圾回收机制)回收,例如:指针、slice、map、chan等都是引用类型
深拷贝是值类型的,通常分配在栈上,比如,数组,int ,bool, struct等
值得注意的是Go中的append和copy也都是深拷贝