티스토리 뷰

Swift

열거형(Enumeration) 정복하기 - 1장

swallow.iOS 2022. 5. 27. 23:41

 

안녕하세요! Swallow입니다!

이번 포스팅은

⭐️ 열거형(Enumeration) ⭐️

관한 글입니다!

열거형을 잘 다루기 위해서

이번 게시글에서는 열거형의 가장 기본적인 부분을 다뤄보도록 하겠습니다!

항상 어떠한 조언, 충고 환영입니다!

시작하기에 앞서 이 글은

앨런 Swift 문법 마스터 스쿨 강의와 야곰님의 스위프트 프로그래밍 책

공부하고 참고하여 작성하였습니다!

그럼 시작하겠습니다!

 

 

열거형(Enumeration)이란?

연관된 케이스(항목)들을 하나의 묶음으로 표현한 자료형

입니다!

 

오...

뭔가 좀 그럴싸해 보이죠?

쉽게 말씀드리면

연관된 항목을 묶은 것이니

요일을 주제로 열거형을 만든다고 한다면

월, 화, 수, 목, 금, 토, 일

이런 식으로 나타낼 수 있겠죠?

 

언제나 글로만 보면, 이해가 잘 안 되듯이

바로 열거형 정의 방법의 예시를 보여드릴게요!

 

열거형의 정의 방법은

enum 타입이름 {
    case 연관된 항목 1
    case 연관된 항목 2
    case 연관된 항목 3
    case 연관된 항목 4
}

위의 예시처럼 정의가 가능합니다!

각각의 케이스들은

그 자체가 고유한 값입니다!

 

그리고 열거형은

연관된 항목들을 하나로 묶음 자료형이라고 말씀을 드렸습니다!

결국 타입이라는 얘기죠!

그래서 열거형을 구현을 하실 때는 타입이므로 꼭 대문자를 사용해주세요!

하지만, 각 케이스 이름은 소문자로 시작을 합니다!

기억해 두세요!

 

정의 방법을 알았으니

한번 위에서 적은 대로 요일을 열거형으로 나타내 보겠습니다!

enum Weekday {  // 타입 이므로 대문자로 정의
    case monday  // 각각의 케이스들은 소문자로 정의
    case tuesday
    case wednesday
    case thursday
    case friday
    case saturday
    case sunday
}

 

그런데 열거형을 왜 사용을 할까요?

그 이유는!

한정된 사례(정해진 개수) 안에서 정의를 할 수 있으니

하나의 묶음으로 사용을 하면

명확한 분기 처리가 가능하기 때문에

코드의 가독성과 안정성이 높아집니다!

아주 좋은 녀석이에요!

 

코드의 가독성과 안정성에 대한 간단한 예시를 들어볼게요!

var weekday: String = "monday"
var weekday: String = "tuesday"
var weekday: String = "wednesday"
var weekday: String = "wendesday" // 예시를 위한 오타

위의 예시처럼 요일을 나타내고 싶을 때

하나하나 나열하는 것보다

하나의 묶음으로 처리하는 게

더 활용도와 가독성이 높을 뿐만 아니라,

값을 직접 할당하다 보면 오타가 날 수도 있습니다..!

위의 예시처럼 실수로 오타를 낸다면

당연히 안정성도 떨어지겠죠..😱

그렇기 때문에 열거형을 사용을 합니다!

 

 

자 그러면 열거형을 위에서 정의를 해보았으니

한번 열거형을 생성해볼까요?

var today: Weekday = Weekday.friday
today = .saturday

today변수에 Weekday라는 열거형 타입으로 열거형을 생성해서 friday라는 값을 주었습니다!

friday라는 케이스는 열거형 내부에 존재하는

이기 때문에

.(접근연산자)를 사용해서 접근을 해야 합니다!

그리고 다시

today변수에 값을 변경을 해준 상황입니다!

아래의 경우에는 위에서 이미

타입을 명시해주었으니

타입을 생략하고 .(접근연산자)를 통해 값을 할당을 했습니다!

 

 

열거형을 처리하는 방법으로는

일반적으로 switch문을 사용합니다!

위에서 만든 열거형을 예시로 들어볼게요!

switch today {
case .monday:
    print("오늘은 월요일")
case .tuesday:
    print("오늘은 화요일")
case .wednesday:
    print("오늘은 수요일")
case .thursday:
    print("오늘은 목요일")
case .friday:
    print("오늘은 금요일")
case .saturday:
    print("오늘은 토요일")
case .sunday:
    print("오늘은 일요일")
}

// 콘솔창
// 오늘은 토요일

today변수를 이용해서 switch문을 활용을 했습니다!

today변수에는 .saturday 가 할당이 되어있으니

print("오늘은 토요일")

부분이 실행이 됩니다!

 

쉬운 이해를 위해 포켓몬을 열거형으로 표현

 

이번 포스팅에서는

열거형의 가장 기본적인 부분에 대해서

다뤄보았습니다!

 

열거형에 대한 깊은 내용은

다음 포스팅에서 다뤄볼게요!

 

감사합니다!

 

피드백 언제나 환영입니다!

댓글