Skip to content

Castlebin/go-learn

Repository files navigation

go-learn

Go 的浅拷贝和深拷贝

Go 方法调用时,浅拷贝 和 深拷贝 (看类型)(引用类型、值类型) :

  1. 浅拷贝 (可以视为对象指针) 浅拷贝是指对地址的拷贝 浅拷贝的是数据地址,只复制指向的对象的指针, 此时新对象和老对象指向的内存地址是一样的,新对象值修改时老对象也会变化 (其实没有新老对象,就是同一个)。

引用类型的都是浅拷贝:slice、map、function (+ 指针) (注意:slice 是浅拷贝、array 是神拷贝)

  1. 深拷贝 深拷贝是指将地址指向的值进行拷贝

深拷贝的是数据本身,创造一个一样的新对象,新创建的对象与原对象不共享内存, 新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。

值类似的都是深拷贝:int、float、bool、array、struct (看到没有,struct 、array 都在这里。)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published