열거형
열거형이란? 그룹에 대한 연관된 값을 정의하고 사용가능한 타입이다. 원치 않는 값의 입력을 방지할 때, 입력받을 값을 특정할 수 있을 때, 제한된 값 중에서만 선택하도록 강요할 때 사용할 수 있다. 원시값(rawValue)이라는 형태로 실제 값(정수, 실수, 문자열 등)을 부여할 수 있다.
enum Color {
case red
case blue
case yellow
}
or
enum Color {
case red, blue, yellow
}
열거형의 원시값
enum CompassPoint: Int {
case north = 1, south, east, west
}
CompassPoint.south.rawValue //2
CompassPoint.east.rawValue //3
CompassPoint.west.rawValue //4
원시값은 원하는 값을 지정할 수 있으며, 시작값을 지정할 수 있다. (기본값은 0)
열거형과 switch 구문
열거형으로 선언된 변수를 switch 구문과 활용할 경우 모든 값에 대한 비교로 인해 default 구문을 생략할 수 있다.
enum CompassPoint {
case north, south, east, west
}
var directionToHead = CompassPoint.west
switch directionToHead {
case .north:
print("Lots of planets have a north")
case .south:
print("Watch out for penguins")
case .east:
print("Where the sun rises")
case .west:
print("Where the skies are blue") //실행
}
열거형의 모든 case가 제공될때 default 값은 제공될 필요가 없다.
하지만 만약 모든 case에 대한 비교가 이루어지지 않았을 때에는 반드시 default 구문이 존재해야 한다.