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으로 타입을 만들 때, enum Juice: String { .. } 이렇게 할 경우, 콜론 뒤의 String은 상속인가, 프로토콜 채택, 형 설정인가?

해결방법

  • Enum으로 타입을 만들 때, enum Juice: String { .. } 이렇게 할 경우, 콜론 뒤의 String은 상속인가, 프로토콜 채택, 형 설정인가?
    • Enum case의 raw value 타입을 설정하는 것이다.