안녕하세요.
오늘은 Swift의 열거형(enum)에 대해 알아보겠습니다.
안드로이드 개발 당시에도 한 번 사용해보고 열거형의 편리함에 푹 빠졌는데요.
Swift에서도 유용하게 사용할 것 같네요.
그럼 시작하겠습니다!
참고 자료
해당 포스팅은 Smile Han님의 유튜브 영상을 참고하며 작성하였습니다.
https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
열거형(enum)
관련 있는 데이터들이 멤버로 구성되어 있는 자료형 객체입니다.
열거형은 아래 세 가지 경우에 유용합니다.
- 원치 않는 값이 입력되어 에러가 발생하는 것을 방지할 때
- 입력 값을 특정 범위로 제한할 때
- 특정 값 중 하나만 선택하게 할 때
성별을 입력할 때는 남자, 여자 중에서만 선택할 수 있고
요일 관련 질문에는 월, 화, ..., 목, 금으로 입력 값을 제한할 수 있죠.
열거형 정의 방법
열거형은 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 멤버를 작성하면 편하게 코드를 작성할 수 있습니다.
또한 가독성도 높아지니 기억해두면 유용하게 사용할 특성입니다.
감사합니다!
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.