🦜 Swift

[Swift] 열거형

ji-hyun 2022. 11. 19. 22:33
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