반응형

안녕하세요.

 

오늘은 Swift의 열거형(enum)에 대해 알아보겠습니다.

안드로이드 개발 당시에도 한 번 사용해보고 열거형의 편리함에 푹 빠졌는데요.

Swift에서도 유용하게 사용할 것 같네요.

 

그럼 시작하겠습니다!


참고 자료

해당 포스팅은 Smile Han님의 유튜브 영상을 참고하며 작성하였습니다.

https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA


열거형(enum)

관련 있는 데이터들이 멤버로 구성되어 있는 자료형 객체입니다.

열거형은 아래 세 가지 경우에 유용합니다.

  1. 원치 않는 값이 입력되어 에러가 발생하는 것을 방지할 때
  2. 입력 값을 특정 범위로 제한할 때
  3. 특정 값 중 하나만 선택하게 할 때

성별을 입력할 때는 남자, 여자 중에서만 선택할 수 있고

요일 관련 질문에는 월, 화, ..., 목, 금으로 입력 값을 제한할 수 있죠.


열거형 정의 방법

열거형은 enum 키워드를 이용해 정의 가능합니다.


      
enum 열거형명 {
//열거형 정의
}

멤버는 case를 쓰고 작성합니다.

각 멤버마다 case를 붙여줄 수도 있고 하나의 case에 모두 작성할 수도 있습니다.

 

열거형 예시


      
enum Weekday {
case Monday
case Tuesday
case Wednesday
case Thursday
case Friday
case Saturday
case Sunday
}
//하나의 case에 모두 넣어도 된다
/*
enum Weekday {
case Monday, Tuesday, Wednesday, ... , Saturday, Sunday
}
*/
print(Weekday.Monday)
var weekday = Weekday.Monday
weekday = .Tuesday
print(weekday, type(of: weekday))
//실행결과
//Monday
//Tuesday Weekday

 

문맥에서 타입의 추론이 가능한시점에는 열거형명 생략 가능합니다.

weekday를 처음 정의할 때 Weekday라는 것을 명시했기 때문에

두 번째 할당에는 열거형명을 생략할 수 있습니다.

 

이러한 열거형의 특성은 switch문에서도 유용합니다.


      
enum Weekday {
case Monday
case Tuesday
case Wednesday
case Thursday
case Friday
case Saturday
case Sunday
}
var workDay : Weekday
workDay = .Monday
switch workDay {
case .Monday, .Tuesday, .Wednesday, .Thursday, .Friday:
print("출근")
case .Saturday:
print("휴일!")
case .Sunday:
print("출근 준비")
}

case마다 열거형명을 사용하지 않아도 모두 타입 추론이 되어

dot(.)만 쓰고 바로 enum 멤버를 작성하면 편하게 코드를 작성할 수 있습니다.

또한 가독성도 높아지니 기억해두면 유용하게 사용할 특성입니다.

 

감사합니다!

 


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

반응형
유정주