보초의 코딩일기장

[Swift 입문] 열거형 본문

낙서장/edwith : swift 입문

[Swift 입문] 열거형

장보비 2018. 7. 2. 15:16

열거형

1
2
3
4
5
6
enum 이름{
    case name1
    case name2
    case name3, name4, name5
    //...
}
cs

유사한 종류의 여러 값을 한 곳에 모아 정의한 것이다.

다른 언어의 열거형과는 다르게 각 케이스는 그 자체가 고유의 값이 된다. (정수값이 할당되는 것이 아님)

한줄에 한번에 정의 가능하다.


열거형의 예시를 들자면 
1
2
3
4
5
6
enum Weekday {
    case mon
    case tue
    case wed
    case thu, fri, sat, sun
}
cs


var 변수 : 열거형 타입이름 =열거형 타입이름 . 케이스이름

1
var day: Weekday = Weekday.mon

cs

타입을 명시해주어야 한다.


선언 후에는 ( 타입이 명확하다면 ) .케이스 처럼 표현해도 무관하다.

1
day = .tue
cs


원시값 (rawValue)

열거형을 정수값으로 할당할 수 있는 방법이다.

정수 타입 뿐만 아니라 모든 타입을 원시값의 타입으로 지정할 수 있다.

1
2
3
4
5
6
7
8
9
enum Fruit: Int {
    case apple = 0
    case grape = 1
    case peach
  
}
 
print("Fruit.peach.rawValue == \(Fruit.peach.rawValue)")
// Fruit.peach.rawValue == 2
cs



케이스에 해당하는 값이 없을 수도 있는 경우가 발생할 수 있으므로 옵셔널 타입으로 선언하여 원시값으로 초기화를 하는 방법도 존재한다.

1
2
let apple: Fruit? = Fruit(rawValue: 0)
 
cs


메서드

열거형에는 메서드도 추가할 수 있다.

Buy me a coffeeBuy me a coffee
Comments