열거형 개요
일반적으로 emum이라고 하는 열거형은 미리 정의된 값 집합으로 구성된 사용자 지정 데이터 유형을 만드는 데 사용된다. 열거형은 일반적으로 switc문을 사용할 때와 같이 코드 내에서 결정을 내릴 때 사용된다.
enum Temperature { // 열거형으로 Temperature 선언(타입이 됨) case hot case warm case cold } - 이 예제에서는 어떤 케이스에도 값이 할당되지 않았다. 이러한 타입의 열거형은 기본적으로 미리 정의된 상태들 중 하나를 참조하는 데 사용된다.
- 일단 선언되면 열거형은 예를 들어 다음과 같이 switch문 내에서 사용될 수 있다.
func displayTempInfo(temp: Temperature) { // temp는 Tem.. switch temp { case .hot: print("It is hot") case .warm: print("It is warm") case .cold: print("It is cold") } } - 열거형에는 요효한 멤버 값의 최종 집합이 있기 때문에 switch문에 디폴트 케이스를 포함할 필요가 없다.
- 열거형을 테스트하려면 다음 세 가지 가능한 상태 중 하나가 선택된 Temperature 열거형의 인스턴스를 displayTempInfo()함수에 전달해야 한다.
Temperature.hot Temperature.warm Temperature.cold - 예를 들어 다음과 같이 입력한다.
displayTempInfo(temp: Temperature.warm) // It is warm 열거형 내의 개별 케이스에는 연결된 값이 있을 수도 있다. 예를 들어 'cold' 열거형 케이스가 온도 값과 연결되어야 앱이 추위와 동결 조건을 구별할 수 있다고 하자. 이것은 다음과 같이 열거형 선언 내에서 정의할 수 있다.
[!생각] 와 갑자기 엄청 공부하기 싫어진다. 문법 두번째 도는 것 같은데, 이걸 실제로 내가 쓸 수 있을지에 대해서도 와닿지 않고, 나는 참 업다운이 크다. 그래도 버티면서 많이 왔다. 개발 책을 100페이지까지 꾹꾹 써내려가면서 여기까지 왔다. 좀만 더 힘 내보자. 기초가 정말 중요하다. 힘 내보자...
enum Temperature { case hot case warm case cold(centigrade: Int) } - 이를 통해 switch 문은 다음과 같이 cold 케이스의 온도도 확인할 수 있다.
func displayTempInfo(temp: Temperature) switch temp { case .hot: print("Hot") case .warm: print("Warm") case .cold(let centigrade) where centigrade <= 0: print("Ice warning: \(centigrade) degrees") case .cold: print("Cold") } - cold 열거형 값이 함수에 전달될 때, 이제는 포함된 온도 값과 함께 전달된다.
요약
열거형은 미리 정의된 상태 값 집합으로 구성된 사용자 지정 타입을 만드는 데 사용되며, 특히 switch 문 내에서 상태를 식별하는 데 사용된다.