열거형 선언
enum 열거형 이름 {
//열거형의 멤버 정의
case 멤버값 1
case 멤버값 2
case ...
}
case Derection {
case north
case south
case east, west
}
//한줄에 여러 멤버를 선언하든, 한줄마다 멤버를 선언하든 차이가 없다.
let N: Direction = Direction.north
let S: Direction = Direction.south
let E: Direction = Direction.east
let W: Direction = Direction.west
//변수를 열거형 타입으로 타입어노테이션을 붙이면, 이 변수에 대입될수 있는 값은 같은 열거형 타입에 정의 된 다른 멤버값 뿐이다. 따라서 열거형 타입명을 생략할수 있다.
let N: Direction = .north
let S: Direction = .south
let E: Direction = .east
let W: Direction = .wast
//단, 타입 어노테이션이 없을 경우에는, 타입추론이 안되어 에러 발생한다
let N = .north //error
switch N {
case .north :
pirnt("북쪽")
case .south :
print("남쪽")
case .east :
print("동쪽")
case .west :
print("서쪽")
}