열거형의 연관값(Associated Values)
-열거형의 각 항목들은 연관값이라는 것을 가질 수 있다.
-연관값은 각 항목 옆에 소괄호를 통해 표현할 수 있고, 일부 항목들이 연관값을 가졌다고 모든 항목이 연관값을 가질 필요는 없다.
ex) 연관값
각 항목 옆에 튜플을 통해 내가원하는 연관값을 받을 수 있게 선언할 수 있다.
연관값을 사용하고 싶을 때는 . 을 이용해서 이니셜라이저안에 값을 넣어 사용할 수 있다.
열거형의 항목순회
-열거형에 포함된 모든 항목들을 알고 싶을 때, CaseIterable 프로토콜을 사용할 수 있다.
-CaseIterable을 채택하면 allCases라는 타입 프로퍼티를 통해 모든 항목의 컬렉션을 생성할 수 있다.
ex)
: 콜론을 통해 CaseIterable 프로토콜 채택.
만약 원시값이 있는 열거형이라면 타입을 먼저 선언하고 , 콤마 후 프로토콜을 채택해주면 된다.
CaseIterable 프로토콜을 채택하면 다음과 같이 allCases 프로퍼티를 사용할 수 있다.
순환 열거형
-열거형 항목의 연관값이 열거형 자신의 값이고자 할 때 사용한다.
-순환 열거형을 명시하고 싶으면 indirect 키워드를 사용하면 된다.
요렇게 원하는 항목에 indirect 키워드를 사용해주면 된다.
그럼 이렇게 School 열거형안에 있는 값을 사용할 수 있다.
만약 열거형 전체에 indirect를 적용하고 싶다면?
이렇게 열거형 선언할 때, 키워드 붙여주면 된다.
indirect는 이진 탐색 트리 등의 순환 알고리즘을 구현할 때 유용하게 사용할 수 있다고 한다.
Reference :
야곰 swift 프로그래밍 3판
https://babbab2.tistory.com/117
'Swift' 카테고리의 다른 글
Closer에 관하여 (0) | 2023.03.01 |
---|---|
연산자 정리 (0) | 2023.02.28 |
열거형에 관하여 (0) | 2023.02.15 |
함수와 메소드의 차이 (0) | 2023.02.06 |
Static과 Class에 관하여 (0) | 2023.01.31 |