Roel Notebook

[Swift] Enumerations

by Roel Downey
728x90
반응형

오늘 공부하고 정리할 내용

- 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]

 

728x90
반응형

'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

활동하기