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 동작 하지 않고 서로 같은 주소를 바라 보는 것을 확인 할 수 있다.
📝 참고 사이트