mutating 키워드에 대해 설명하시오.

김지훈·2022년 4월 16일
0

iOS 면접

목록 보기
64/82

클래스는 reference 타입이고 struct와 enum 는 value type입니다.

값 타입의 속성은 기본적으로 인스턴스 메서드 내에서 수정할 수 없습니다.
만약 수정해야하는 경우 mutating을 붙여주면 됩니다.

  • 이유: swift는 메모리를 절약하기 위해 Copy On Write방식을 사용하고 있는데, 값 타입(ex: 구조체의 인스턴스)을 변경할 때에 이 Copy On Write 방식에서 값이 수정됐는지 모르기 때문이다.

mutating 키워드를 사용한 메서드에서 프로퍼티를 변경하면 변경된 새로운 구조체를 인스턴스에 할당하게 된다.

(COW) -> thread safety 및 메모리 절약 ?.?

thread safety: 어떤 객체에 여러 스레드로부터 동시에 접근이 이루어져도 안전하다.

0개의 댓글