Enum

1. Enum


열거형 선언

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("서쪽")
}

멤버와 값 분리