🍎 Swift/iOS 학습 노트
[Swift🍎] Struct&Enum에서 mutating의 역할
솔비님
2025. 2. 19. 23:45
오랜만에 강의를 돌려보던 중 mutating이라는 생소한 것을 봤다
그래서 좀 찾아봄
mutating이란?
값 타입인 구조체(struct)와 열거형(enum)에서 인스턴스의 프로퍼티를 메서드 내부에서 변경할 수 있음
예를 들면 Int타입의 변수 count의 값에 1씩 추가하는 함수 increment를 만든다고 가정하자
이 코드에서 Struct(구조체)인 Counter는 값 타입(Value Type)이므로, 인스턴스가 복사 되어 전달된다
즉, 구조체 내부의 인스턴스는 불변 메서드로 간주된다(immutable)
mutating 키워드를 사용하게 되면 self를 변경할 수 있는 메서드가 되어 count 프로퍼티를 수정할 수 있다
→ count에 +1이 잘 되어 출력된다
반면 class는 참조타입이므로 self 값 변경이 가능해 mutating이 필요없다
여기서 struct와 class의 차이를 다시 한 번 알 수 있다