[Swift] Enumerations
by Roel Downey오늘 공부하고 정리할 내용
- Enumerations가 뭘까?
- Enumeration Syntax
Enumerations가 뭘까?
열거형은 연관된 항목들을 하나의 이름으로 묶어서 표현 할 수 있는 형식
열거형은 배열이나 딕셔너리 같은 타입과 다르게 프로그래머가 정해준 항목 값 외에는 추가 수정이 불가
딱 정해진 값만 열거형 값에 속할 수 있다.
열거형에 포함된 상수들은 상수라고 하지 않고 Enumeration case 라고 부른다.
열거형은 독립적인 형식이다.
열거형은 이름을 가지고 있고, 여기에 포함된 개별 case도 고유한 이름을 가지고 있다.
열거형을 사용하는 이유 ?
- 코드의 가독성과 안정성이 높아지기 때문이다.
언제 쓰는 게 좋을까?
- 1. 제한된 선택지를 주고 싶을 때
- 2. 정해진 값 외에는 입력받고 싶지 않을 때
- 3. 예상된 입력값이 한정되어 있을 때
- 4. 등등...
열거형 문법 (Enumeration Syntax)
열거형 선언은 enum 키워드로 시작한다.
열거형 이름은 UpperCamelCase 방식으로 선언한다.
{ } 에는 열거형에 저장할 Enumeration case를 선언한다.
case 이름은 lowerCamelCase 로 짓는다.
열거형에 있는 case 이름은 서로 중복이 되면 안 된다.
case를 선언할때는 한줄에 하나씩 선언하자.
case 이름, 이름
을 사용해도 되는데, 기왕이면 한눈에 보기 좋게 사용하자.
기본 열거형 선언
기본 열거형 생성
1번 방법, 2번 방법 같은 방법이다.
Switch에서 열거형 값을 확인해 보자
CaseIterable 프로토콜을 사용하여 , case의 개수와 case를 출력해보자.
원시 값(Raw Value)
열거형의 각 항목은 자체로도 하나의 값이지만 항목의 원시 값(Raw Value)도 가질 수 있다.
즉, 특정 타입으로 지정된 값을 가질 수 있다는 뜻이다.
특정 타입의 값을 원시 값으로 가지고 싶다면 열거형 이름 오른쪽에 타입을 명시해 주면 된다.
원시 값을 사용하고 싶다면 rawValue 라는 프로퍼티를 통해 가져올 수 있다.
연관 값(Associated Values)
스위프트의 열거형 각 항목이 연관 값을 가지게 되면, 기존 프로그래밍 언어의 공용체 형태를 띨 수도 있다.
열거형 내의 항목(case)이 자신과 연관된 값을 가질 수 있다.
연관 값은 각 항목 옆에 소괄호로 묶어 표현할 수 있다.
다른 항목이 연관 값을 갖는다고, 모든 항목이 연관 값을 가질 필요는 없다.
Matching Enumeration Values with a Switch Statement
첫 번째 방법은 let 키워드를 다 붙여 줬는데, 두 번째 방법은 공통된 let을 앞으로 빼서 간결하게 기술함
[참고 링크]
Apple Developer: [Enumerations]
'iOS > Swift' 카테고리의 다른 글
[Swift] Initialization (초기화) (0) | 2019.08.28 |
---|---|
[Swift] Structure And Class (0) | 2019.07.17 |
[Swift] Functions (0) | 2019.07.12 |
[Swift] Optional (0) | 2019.07.12 |
[Swift] Collection [ 간단하게 정리하기] (0) | 2019.07.12 |
블로그의 정보
What doing?
Roel Downey