淺析Golang的深淺拷貝

明確概念

深拷貝:僅對值進行拷貝,並創建一個新的對象,新對象和被拷貝的對象指向不同的地址。
淺拷貝:同時對值和地址進行拷貝,創建一個新的對象指向被拷貝對象的地址。

Golang中深拷貝和淺拷貝的數據類型都有哪些呢?

淺拷貝一般都是引用類型,通常分配在堆上,通過GC(垃圾回收機制)回收,例如:指針、slice、map、chan等都是引用類型

深拷貝是值類型的,通常分配在棧上,比如,數組,int ,bool, struct等

值得注意的是Go中的append和copy也都是深拷貝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章