목차
1. '열거형(Enumeration)'이란?
2. 열거형(Enumeration)의 사용법
2.1. switch-case문과 사용해보기
2.2. 열거형(Enumeration)에 자료형을 지정해보기
1. '열거형(Enumeration)'이란?
'열거형(Enumeration)'은 비슷한 값들을 그룹으로 묶어서 정의를 하고, 함수에서 값을 입력을 받을 때 미리 정해진 값을 한정해서 받을 때 유용하게 사용한다.
-
swift에서는 인자에 " . " 으로 열거형의 변수 타입을 주는 경우가 많다.
-
키워드는 enum이고, enum문 안에는 case로 열거할 대상을 정의한다.
-
열거형의 이름은 구조체나 클래스처럼 대문자로 시작한다.
-
아래와 같이 " . " 으로 열거형의 변수 타입을 축약해서 표현할 수 있다.
var os1: AppleOS = AppleOS.macOS
var os2: AppleOS = .macOS
-
열거형의 경우 xcode에서 (.)만 눌러도 목록이 조회된다.
2. 열거형(Enumeration)의 사용법
2.1. switch-case문과 사용해보기
열거형은 switch문과 같이 사용하는 경우가 많다.
- swift에서 switch-case문은 default절을 쓰지 않으면 기본적으로 에러가 발생한다.
- "모든 케이스"에 대해 case문을 작성해준다면 default문을 쓰지 않아도 에러가 발생하지 않는다.
- 열거형 osType의 모든 케이스(iOS, macOS, tvOS, watchOS)에 대해서 case문을 적어주었다.
2.2. 열거형(Enumeration)에 자료형을 지정해보기
- Int형 열거형을 정의해보자.
아래 예시와 같이
1) 열거형에는 자료형을 지정할 수 있으며
2) 값을 초기화하여 정의할 수 있으며
3) 뒤에 열거 요소들의 값 초기화를 생략하면 Int형의 경우 1씩 증감된 값으로 초기화된다.
- 아래의 예시를 보면 1이 출력될 것 같지만, one이 출력된다.
- num의 int 값 1을 출력하고 싶다면, 아래와 같이 열거형의 rawValue 함수를 호출해야 한다.
- 열거형의 자료형으로 String을 지정해보자.
- "dd"가 아닌 alpha에 초기값으로 넣어준 "DD"를 출력하고 싶다면, 열거형의 rawValue 함수를 호출해야 한다.