enum Weekday {
case mon
case tue
case wed
case thu, fri, sat, sun
}
var day: Weekday = Weekday.mon
day = .tue //
day 가 Weekday 타입이므로 .tue 이런 식으로 축약해서 써줄 수도 있다.
다만 Weekday 타입이라고 명시해줬어야 함
switch 문을 이런 식으로 많이 쓴다.
그리고 Swift 의 enum 은 C 언어의 enum 처럼 정수값을 가질 수 있다.
enum Fruit: Int {
case apple = 0
case grape = 1
case peach
}
자동으로 1씩 증가한다. 따라서 peach 는 2
단, case 별로 다른 정수 값을 가져야 한다.
이렇게 rawValue 로 값을 확인할 수 있다.
Int 와 다르게 String 은 값을 선언하지 않으면 case enum 값 그대로 쓴다. (college)
열거형의 초기화
let apple: Fruit? = Fruit(rawValue: 0)
rawValue 를 통해 초기화 할 수 있다.
rawValue 가 case 에 해당하지 않을 수 있으므로 rawValue 를 통해 초기화한 인스턴스는 옵셔널 타입이다.
위와 같이 옵셔널 타입은 if let 으로 안전하게 꺼내서 사용할 수 있다.
열거형 메서드
이렇게 enum 에다가 메서드도 추가해줄 수 있다.
Month.mar.printMessage()
'🦜 Swift' 카테고리의 다른 글
[Swift] 프로퍼티 (0) | 2022.11.20 |
---|---|
[Swift] 클로저 (0) | 2022.11.20 |
[Swift] 클래스 (0) | 2022.11.19 |
[Swift] 구조체 (0) | 2022.11.19 |
[Swift] if let vs guard let (0) | 2022.11.19 |