明確概念
深拷貝:僅對值進行拷貝,並創建一個新的對象,新對象和被拷貝的對象指向不同的地址。
淺拷貝:同時對值和地址進行拷貝,創建一個新的對象指向被拷貝對象的地址。
Golang中深拷貝和淺拷貝的數據類型都有哪些呢?
淺拷貝一般都是引用類型,通常分配在堆上,通過GC(垃圾回收機制)回收,例如:指針、slice、map、chan等都是引用類型
深拷貝是值類型的,通常分配在棧上,比如,數組,int ,bool, struct等
值得注意的是Go中的append和copy也都是深拷貝
明確概念
深拷貝:僅對值進行拷貝,並創建一個新的對象,新對象和被拷貝的對象指向不同的地址。
淺拷貝:同時對值和地址進行拷貝,創建一個新的對象指向被拷貝對象的地址。
Golang中深拷貝和淺拷貝的數據類型都有哪些呢?
淺拷貝一般都是引用類型,通常分配在堆上,通過GC(垃圾回收機制)回收,例如:指針、slice、map、chan等都是引用類型
深拷貝是值類型的,通常分配在棧上,比如,數組,int ,bool, struct等
值得注意的是Go中的append和copy也都是深拷貝