建设什么网站,移动网站如何优化排名,变化型网站,wordpress主程序1、深拷贝#xff08;Deep Copy#xff09;拷贝的是数据本身#xff0c;创造一个样的新对象#xff0c;新创建的对象与原对象不共享内存#xff0c;新创建的对象在内存中开辟一个新的内存地址#xff0c;新对象值修改时不会影响原对象值。既然内存地址不同#xff0c;释…1、深拷贝Deep Copy拷贝的是数据本身创造一个样的新对象新创建的对象与原对象不共享内存新创建的对象在内存中开辟一个新的内存地址新对象值修改时不会影响原对象值。既然内存地址不同释放内存地址时可分别释放。值类型的数据默认全部都是深复制Array、Int、String、Struct、FloatBool。2、浅拷贝Shallow Copy拷贝的是数据地址只复制指向的对象的指针此时新对象和老对象指向的内存地址是一样的新对象值修改时老对象也会变化。释放内存地址时同时释放内存地址。引用类型的数据默认全部都是浅复制SliceMap用途当我们需要拷贝一个新对象时, 怎么选择呢? 显然当需要节省内存时, 可选浅拷贝, 因为只是复制了地址当为了操作简便时, 可选浅拷贝, 直接a : b即可而当需要开辟新内存, 分别处理新老对象, 使两者互不干扰时, 则需要深拷贝例如数据流业务的多条支流间, 若均存在改写对象的操作, 则需深拷贝, 防止A逻辑分支改了a对象, 而后续B逻辑分支意外的使用了被别人改过的对象是否真正获取复制对象实体而不是引用。关于copy函数 1.copy只能用于切片不能用于 map 等任何其他类型。2.copy返回结果为一个 int 型值表示 copy 从原切片src复制到目的切片的长度。使用注意事项切片 dst 需要先初始化长度在使用copy将 src 完全 复制 到 dst 时需要初始化目的切片dst的长度。 1.如果 dst 长度小于 src 的长度则 拷贝src中的部分内容2.如果大于则全部拷贝过来其余的空间填充该类型的默认值3.如果相等刚好不多不少 copy 过来所以通常dst在初始化时即指定其为src的长度。 源切片中元素类型为引用类型时拷贝的是引用由于copy 函数拷贝的是切片中的元素所以如果切片元素的类型是引用类型那么 copy 的也将是个引用1.性能方面copy复制会比等号复制慢。 2.复制方式copy复制为值复制改变原切片的值不会影响新切片。而等号复制为指针复制改变原切片或新切片都会对另一个产生影响