오랜만에 강의를 돌려보던 중 mutating이라는 생소한 것을 봤다
그래서 좀 찾아봄
mutating이란?
값 타입인 구조체(struct)와 열거형(enum)에서 인스턴스의 프로퍼티를 메서드 내부에서 변경할 수 있음
예를 들면 Int타입의 변수 count의 값에 1씩 추가하는 함수 increment를 만든다고 가정하자
이 코드에서 Struct(구조체)인 Counter는 값 타입(Value Type)이므로, 인스턴스가 복사 되어 전달된다
즉, 구조체 내부의 인스턴스는 불변 메서드로 간주된다(immutable)
mutating 키워드를 사용하게 되면 self를 변경할 수 있는 메서드가 되어 count 프로퍼티를 수정할 수 있다
→ count에 +1이 잘 되어 출력된다
반면 class는 참조타입이므로 self 값 변경이 가능해 mutating이 필요없다
여기서 struct와 class의 차이를 다시 한 번 알 수 있다
'🍎 Swift > iOS 학습 노트' 카테고리의 다른 글
[Swift🍎] 타입 메서드와 타입 프로퍼티(Type Method, Type Property) 그리고 객체지향프로그래밍 (0) | 2025.02.20 |
---|---|
[Swift🍎] rawValue: 원시값 (0) | 2025.02.13 |
[Swift🍎] URLSession 뜯어보기 (0) | 2025.01.17 |
[Swift🍎] tableView, collectionView 식별자 간단하게 관리하기! (1) | 2024.10.31 |
[Swift🍎] RxSwift로 UITableView에 bind 하기 (0) | 2024.10.31 |