Old_SWIFT(221012)/기본이야기

Mutating에 대하여...

KataRN 2022. 10. 3. 22:46
반응형

안녕하세요. KataRN입니다.

 

오늘은 Mutating에 대해 알아보겠습니다.

 

우선순위 힙에 대해 공부하다보니 Mutating가 보여서 정리하게되었습니다.

 

- mutating

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

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

mutating을 선언한 메서드는 메서드 내에서 프로퍼티를 변경할 수 있고, 메서드가 종료될 때 변경한 모든 내용을 원래 struct에 다시 기록합니다. 또한 메서드는 self property에 새 인스턴스를 할당할 수도 있습니다.

mutating 키워드는 해당 메서드가 호출된다면 실제 복사를 해야한다고 알려주는 역할입니다.

 

바로 예제로 보겠습니다.

 

이처럼 수정이 안됩니다. (immutable 보이시죠?)

그렇기 때문에 앞에 mutating을 붙여서 사용하면 해결할 수 있습니다.

간단하지만 짚고가면 도움될거라 믿습니다.

오늘도 읽어주셔서 감사합니다.

반응형