enum
enum
관련된 값들을 한 그룹으로 묶어서 표현하는 타입이다.
1
2
3
4
5
6
7
8
9
enum Direction {
case north
case south
case east
case west
}
var currentDirection = Directino.north
currentDirection = .east
Switch문과 함께 사용
1
2
3
4
5
6
7
8
9
10
switch currentDirection {
case .north:
print("북쪽으로 이동")
case .south:
print("남쪽으로 이동")
case .east:
print("동쪽으로 이동")
case .west:
print("서쪽으로 이동")
}
원시 값
- enum에 각 case에 특정 값을 할당 가능
- 특정 타입을 가질 수 있음.
1
2
3
4
5
6
7
enum Rank: Int {
case bronze = 1
case silver = 2
case gold = 1
}
print(Rank.silver.rawValue) // 2 출력
연관 값(associated value)
- 각 case가 추가적으로 값을 가질 수 있음.
1
2
3
4
5
6
7
8
9
10
11
12
13
enum Response {
case success(message: String)
case failure(errCode: Int)
}
let response = Response.success(message: "성공")
switch response {
case .success(let message):
print(message)
case .failure(let err):
print(err)
}
메서드 추가하기
- 메서드를 추가해서 더 확장하여 사용가능.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
enum Beverage {
case coffee, tea, juice
func description() -> String {
switch self {
case .coffee:
return "커피"
case .tea:
return "차"
case .juice:
return "주스"
}
}
}
let drink = Beverage.tea
print(drink.description()) // "차"
This post is licensed under CC BY 4.0 by the author.