深复制和浅复制

复制值类型时,它通常执行深复制,也就是说,它包含的所有值会被递归地复制。这种复制可能是在赋值新变量时就发生的,也可能会延迟到变量内容发生变更的时候再发生。执行深复制的类型被称作具有值语义 (value semantics)。

这里我们会遇到另一件复杂的事情。如果我们的结构体中包含有引用类型,在将结构体赋值给一个新变量时所发生的复制行为中,这些引用类型的内容是不会被自动复制一份的,只有引用本身会被复制。这种复制的行为被称作浅复制 (shallow copy)。

摘录来自
Swift 进阶
Chris Eidhof
此材料受版权保护。

原文地址:https://www.cnblogs.com/coderYDW/p/13430431.html