-
IOS_Swift_Enum(1)IOS_Swift 2020. 1. 1. 23:29
1. Enum
1.1 Enum
enum은 흔히 열거형이라 불리며, 연관된 항목들을 묶어서 표현할 수 있는 타입입니다.
또한 열거형에 지정된 값은 수정 또는 추가가 불가합니다.
열거형 안에 있는 상수들은 case라 부릅니다.
1.2 Enum 을 사용하는 이유
enum 즉 열거형을 사용하는 이유는 코드의 안전성 증가와 코드의 가독성 좋아지며
아래와 같을 때 주로 사용합니다.
- 한정된 선택지
- 정해진 값만 사용 할 경우
위의 경우를 예시로 들어보자면 아래와 같은 상황에서 사용할 수 있을 것 같습니다.
요일별 - 월요일, 화요일, 수요일 ... 일요일
지하철 호선 - 1호선, 2호선 ,3호선 등등
HttpReponseCode - 404, 200, 500 .. 등등
1.3 Enum 사용
1.3.1 Enum 사용 전
위의 코드를 보면 weakday 변수에 리터럴로 "monDay"를 초기화하였습니다.
첫 번째 조건문과 두 번째 조건문을 보면 비교되는 리터럴의 값이 첫 번째는 "monDay" 두 번째는 "Monday"입니다.
즉 위와 같이 스트링 리터럴의 값이 정확해야 우리가 원하는 값을 출력할 수 있습니다.
하지만 스트링 리터럴 값이 오타가 생길 경우 우리가 원하는 값과 다른 값이 출력이 됩니다.
즉 코드의 안정성이 떨어지는 것을 볼 수 있습니다.
그렇다면 enum을 사용할 경우 확인해보겠습니다.
1.3.2 Enum 사용 후
열거형은 아래 이미지와 같이 선언할 수 있습니다
enum 표현식 그렇다면 위와 같은 형태로 주(week)를 표현하는 열거형을 작성 해 보겠습니다.
enum 선언 그리고 열겨형을 사용하기 전과 동일하게 조건문을 통해서 월요일을 출력하겠습니다.
위의 코드를 확인해보면 리털로로 비교할 필요가 없기 때문에 안정성이 높아지고 case의 명만 확인을 통해 월요일은 것을 직관적으로 알 수 있어 가독성이 증가했습니다.
또한 weekDay의 타입을 보면 WeekDay로 되어있는 것을 확인할 수 있습니다. 여기서 WeekDay는 위에서 선언한 열거형 입니다.
즉 타입이 열거형이기 때문에 조건문을 통해 비교를 하기 위해서는 WeekDay 열겨형 타입끼리만 할 수 있습니다.
또한 weekDay변수의 값을 수정을 하기 위해서는 같은 열거형 타입끼리만 가능합니다.
위의 코드를 확인해보면 weekDay 변수는 열거형 타입이기 때문에 다른 타입인 String으로 재할당 할 수 없습니다.
또한 타입이 다르기 때문에 조건문에서 비교 할 경우 에러 메시지가 표시됩니다.
열거형
'IOS_Swift' 카테고리의 다른 글
IOS_Swift_ViewController// UIVIewController 를 알아보자(1) (0) 2020.02.14 IOS_Swift_함수(1) (0) 2020.01.17 IOS_Swift_enum(2) (0) 2020.01.02 IOS_Swift_변수/상수/타입추론 (0) 2020.01.01 IOS_Swift_데이터타입 (Int,Double,String) (0) 2020.01.01