안녕하세요 rOar입니다.!😀
오늘은 열거형에 대해서 알아보려고 합니다.
앱을 만들다 보니 생각보다 열거형을 응용해서 사용하기가 쉽지 않더라구요.
그래서 복습겸 다시 정리를 해볼까 합니다!
1. 열거형(Enumeration)이란?
타입 자체를 한정된 사례(case) 안에서 정의할 수 있는 타입입니다.

위와 같이 School이라는 열거형 타입 안에 4가지 케이스를 정의 하였습니다.
이렇게 정의된 열거형은 if문이나 switch문으로 분기처리를 할 수 있는데요!

위와같은 방식으로 분기처리를 하여 사용하며, 주로 switch문으로 많이 처리하는것 같습니다.
2. 열거형의 원시값(Raw Values)
열거형의 원시값이란 case별로 매칭되는 기본값(정수 / 문자열 등)을 정해, 좀 더 쉽고 다양한 활용을 가능하게 합니다.

원시값은 위와같이 열거형 타입의 오른쪽에 Hashable한 값으로 사용될 수 있는
Int / String / Character / Double 등을 통해 정의할 수 있습니다.
또한, 접근연산자를 통해 원시값 자체에도 접근이 가능한데요!
Planet.mercury.rawValue를 하게되면 원시값인 Int1이 나오게 됩니다.
주의하셔야 할 점은 예시에서와 같이 rawValue를 통해 값을 불러올땐
옵셔널 타입으로 리턴하기 때문에 바인딩을 해주셔야 합니다.
앱을 만들다 보니 옵셔널에 관련된 내용들도 공부를 다시 해볼 필요가 있겠더라구요🤣
3. 열거형의 연관값(Associated Values)
열거형의 연관값이란 구체적인 추가정보를 저장하기 위해 사용합니다.

연관값의 경우 각 케이스별로 상이한 특징이 있고, 그것을 저장 / 활용할 필요가 있을때 사용하며,
개별 케이스마다 저장할 형식을 따로 정의할 수 있습니다.
또한, 연관값의 경우 선언 시점이 아닌 새로운 열거형 값을 생성할때 저장되기 때문에
하나의 케이스로 여러가지 연관값을 저장할 수 있습니다.
원시값과 연관값은 서로 베타적이며, 함께 사용하는것은 불가능 합니다.
열거형에서 옵셔널 관련된 문법들을 몇가지 공부는 했는데, 아직 활용을 해본적이 없어서
추가적으로 여러번 사용해보고 나면 다시한번 정리해서 추가하도록 하겠습니다.
4. unknown 키워드
열거형의 케이스가 늘어나는 경우, switch문에서 열거형의 모든 케이스를 다루지 않으면 경고를 주는 키워드.

개발자의 실수 가능성을 컴파일 시점에 알 수 있도록 해주는 키워드 입니다.
오늘은 이렇게 열거형에 대해 간단하게 알아보았습니다.
문법에 대한 개념이 있어도 활용하는건 또 다른 영역인거 같아요😇
다양한 케이스에서 많이 활용해보고 익숙해져야 할 것 같습니다.
모두들 즐코하세요!🔥
'iOS > Swift' 카테고리의 다른 글
| 클로저(Closure) 이름없는 무서운녀석. (0) | 2022.08.09 |
|---|---|
| 클래스(Class)와 구조체(Struct) (0) | 2022.08.02 |
| 저장 타입 속성(Stored Type Properties)에 대해 알아보기!! (0) | 2022.07.21 |
| Swift Collection에 대해 알아보자!! (0) | 2022.07.12 |
| 1. 변수(Variables)와 상수(Constants) 그리고 Swift 데이터 타입(Data Types) (0) | 2022.07.05 |