Daily iOS
메모리·ARC

얕은 복사와 깊은 복사

struct Order { var items: [Item]; let customer: Customer }에서 Item은 struct, Customer는 class입니다. var copy = order로 복사한 뒤 copy.customer.name을 바꾸면 원본은 어떻게 되나요?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

struct 복사는 필드를 그대로 복사하므로 class 프로퍼티는 참조만 복사되어(얕은 복사) 원본의 customer.name도 바뀐다. items는 struct 배열이라 값 의미론을 유지한다.

받은 질문 공유