본문 바로가기

Swift

[Swift] 열거형 Enum - rewind

열겨형 Enum의 case는 고유의 값을 가진다.

두번 째 껀 타입 추론을 할 수 없어서 오류가 나는 것.

주로 Enum과 switch는 세트로 자주 쓰이며 Enum의 case switch의 case에 다 쓰면 default가 필요 없다.

apple = 0 처럼 rawValue를 추가할 수 있다. Fruit: Int   Int형의 rawValue를 가지고 peach는 2라는 값을 받게 된다 정렬순으로 받는다.

rawValue형이 String일 경우 묵시적으로 case 이름이 rawValue가 된다.

 

Enum의 rawValue 자료형으로 함수를 해보고 싶엇으니 rawValue는 Hashable 프로토콜을 따르는 모든 타입이 원시값 타입으로 지정 가능..

enum 자료형도 nil을 가질 수 있다. rawValue에 원하는 값이 무조건 있을 거란 법이 없기 때문.

Enum안에 method를 쓸 수 있다. 

Month.apr.printMessage() 는 "봄"을 콘솔에 출력한다.

dec.printMessage()는 "겨울"을 콘솔에 출력한다.

 

맨 위의 예시는 Month.printMessage를 자동 완성했을 때 case 값을 넣으라고 뜨길래 넣었는데 출력 값은 없지만 오류가 나지 않는다.