[Swift] 열거형(Enumeration)

jinShine
jinshine 기술 블로그
2 min readMay 19, 2018

열거형 (Enumeration)은 연관된 항목을을 묶어서 표현할 수 있는 타입이고, 다른 타입과는 다르게 프로그래머가 정의해준 항목 값 외에는 추가/수정이 불가능합니다.

열거형 선택 사항

제한된 범위에서 선택지를 주고싶을 경우, 정해진 값 외는 입력받고 싶지 않을 경우, 예상된 입력 값이 한정되어 있을 경우

Ex) 학생 : 초등학생, 중학생, 고등학생, 대학생, 대학원생, 기타

기본 열거형

스위프트의 열거형은 enum이라는 키워드로 선언할 수 있습니다.
각 항목은 그 자체가 고유의 값입니다.

열거형 변수의 생성 및 값 변경

원시값(Raw Value)

열거형의 각 항목은 하나의 값의 역할을 할 수 있지만 항목의 원시값도 가질 수 있다. 즉, 특정 타입으로 지정된 값을 가질 수 있다는 뜻.

특정 타입의 값을 원시값으로 가지고 싶다면 열거형 오른쪽에 타입을 명시해 주시면되고, 명시값을 사용하고싶다면 rawValue라는 프로퍼티를 사용해 가져올 수 있습니다.

만약 일부 항목만 원시값을 주고 싶다면 일부만 값을 지정해도 됩니다.
나머지는 스위프트가 알아서 처리 해줍니다.

예를 들어 문자열 형식의 원시 값을 지정해 줬다면 각 항목의 이름을 그래도 원시 값으로 가지게 되고, 정수형이라면 첫 항목을 기준으로 0부터 1씩 늘어난 값을 가지게 됩니다.

만약 올바르지 않은 원시값을 통해 접근하려 한다면 nil을 반환한다.

연관값을 가지는 열거형

열거형 내의 항목(case)이 자신과 연관된 값을 가질 수 있고, 연관 값은 항목 옆에 소괄호를 이용하여 묶어 표현할 수 있습니다. 굳이 다른 항목이 연관 값을 가진다고 모든 항목이 연관 값을 가질 필요는 없습니다.

--

--