TIL(Today I Learned)
11월 27일(금)
학습내용
- Enum을 더 잘 활용하기 위한 방법을 공부하고, Juice와 Fruit 타입에 적용해 보았다.
- Enum에서 CaseIterable 프로토콜을 이용하여 모든 case를 다룰 수 있다.
- Enum Fruit: CaseIterable { … } 으로 하면, Fruit.allCases 를 통해 모든 case에 대한 배열을 간단하게 만들 수 있다. Fruit.allCases의 타입은 [Fruit]이다.
- Enum의 rawValue 타입 설정을 case 마다 다르게 지정할 수 없으며, 복수 개의 타입 설정도 불가능하다. 모든 case를 같은 형으로, 한가지 타입 설정만 가능하다.
- Enum에는 저장 프로퍼티를 설정할 수 없다. 하지만 연산 프로퍼티 설정은 가능하다.
- 또한 Enum에 메서드도 구현이 가능하다.
- Enum에서 CaseIterable 프로토콜을 이용하여 모든 case를 다룰 수 있다.
문제점/고민한점
- Enum으로 타입을 만들 때, enum Juice: String { .. } 이렇게 할 경우, 콜론 뒤의 String은 상속인가, 프로토콜 채택, 형 설정인가?
해결방법
- Enum으로 타입을 만들 때, enum Juice: String { .. } 이렇게 할 경우, 콜론 뒤의 String은 상속인가, 프로토콜 채택, 형 설정인가?
- Enum case의 raw value 타입을 설정하는 것이다.