深拷贝和浅拷贝

1、浅拷贝

浅拷贝是指对地址的拷贝

浅拷贝的是数据地址,只复制指向的对象的指针,此时新对象和老对象指向的内存地址是一样的,新对象值修改时老对象也会变化,释放内存地址时,同时释放内存地址
引用类型的都是浅拷贝:slicemapfunctioninterface {}chan
浅拷贝的特点:

  • 拷贝的时候仅仅拷贝地址,地址指向的都是同一个值
  • a中修改,则b中也跟着变化
  • 内存销毁是一致的

2、深拷贝

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

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

值类似的都是深拷贝:intfloatboolarraystruct

深拷贝的特点:

  • 复制的时候会新创建一个对象
  • 指向完全不同的内存地址
  • 修改是互不影响的

深拷贝

如果有对 切片和map 有需要进行 深拷贝 的场景可以使用这个2个封装的方法,在定时任务项目里面

深拷贝和浅拷贝

本作品采用《CC 协议》,转载必须注明作者和本文链接
good good study day day up
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!