열거형 : 타입 자체를 한정된 사례 안에서 정의할 수 있는 타입을 의미함.
ex) 날짜(월,화,수,목,금,토,일), 가위바위보(가위,바위,보), 계절(봄,여름,가을,겨울)
// 기본 열거형
enum Weekday {
case monday
case tuesday
case wednesday
case thursday
case friday
case saturday
case sunday
}
// 사용법
var today: Weekday = Weekday.monday
원시값은 열거형 case 말고도 내부에서 독립적인 값을 저장해 불러낼 수 있는 것!
만약 원시값을 설정하지 않으면 자동으로 할당해 준다.
이는 정수형 형태의 원시값을 설정해 줄때 많이 활용된다.
enum Weekday: Int {
case monday = 1
case tuesday // 2
case wednesday // 3
case thursday // 4
case friday // 5
case saturday // 6
case sunday // 7
}
위와 같이 선언해주면, monday에는 1이라는 원시 값이, tuesday에는 자동으로 2라는 원시값이 저장되어 마지막 sunday에는 7이라는 원시 값이 설정되어 이를 활용할 수 있다.
만약 1로 설정을 해주지 않는다면 0부터 차례대로 저장되고, 문자열 형식일때는 각 항목에 대한 이름을 그대로 원시값으로 가지게 된다.