深拷贝和浅拷贝

题目来源:北京合链、映客、腾讯

答案1:

  1. 深拷贝︰拷贝的是数据本身,创造一个新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。
    实现深拷贝的方式:
  • copy(slice2, slice1);
  • 遍历slice进行append赋值
  1. 浅拷贝∶拷贝的是数据地址,只复制指向的对象的指针,此时新对象和老对象指向的内存地址是一样的,新对象值修改时老对象也会变化。
    实现浅拷贝的方式:引用类型的变量,默认赋值操作就是浅拷贝
  • 如slice2 := slice1