Deep Copy
로 이루어 지게 된다.Reference Type
객체들을 생성하면 Shallow Copy
로 이루어 지게 된다.Copy()
을 사용하여 Reference Type
에서도 Deep Copy
를 가능하게 해주는 Protocol
이 있다. String
, Array
, Set
, Dictionary
)에서 Copy - On - Write가 동작 한다.Custom Value Types
같은 경우 Copy - On - Write가 구현되어 있지 않기 때문에 직접 구현 해야 한다.Deep Copy
와 Shallow Copy
의 장점을 모두 가지고 있는 기능이다.Value Types
뿐만 아닌 Reference Types
에는 Copy - On - Write를 지원하지 않기에 직접 구현해야 한다.Copy - On - Write 같은 경우 Collection Type 뿐만이 아닌 Data, URL 등에 몇몇 자료형에서도 Copy - On - Write가 지원이 된다.
Standard Library 에서는 Copy - On - Write 동작 하지 않으며, String 같은 경우에는 Copy - On - Write 가 지원 되지만 글자수가 15 글자를 초과해야
Copy - On - Write가 동작 하며, appendingMethod 를 사용하면
Copy - On - Write 동작 하지 않고 서로 같은 주소를 바라 보는 것을 확인 할 수 있다.
📝 참고 사이트