콘텐츠로 건너뛰기
Home » enum

enum

enum 타입 사용법 정리 – Swift

Emumerations

“열거”타입은 임의의 관계를 맺는 값들을 하나의 타입으로 묶어서 타입-안전한 방식으로 다룰 수 있게 해준다. C에서도 enum 키워드를 이용해서 열거체를 선언할 수 있었는데, C의 열거체는 개별 정수에 대해서 다른 이름을 붙인 상수처럼 취급했다. 반면 Swift의 열거타입은 보다 유연하며 열거 타입 내의 개별 케이스가 단일 값을 대신해서 코드 상에서 구분하기 쉬운 이름을 갖는 것 보다 더 폭넓게 사용될 수 있다. 우선 각각의 케이스가 정수값이 아닌 실수나 문자열등의 다른 Swift 기본 타입의 값을 사용할 수 있다.

또한 각 케이스가 값 하나가 되는 것 외에 각각의 케이스가 연관 값을 갖는 것이 허용된다. 이 때에는 같은 열거형 내의 각각의 케이스가 서로 다른 타입의 연관 값을 갖는 것도 허용된다.

열거 타입은 Swift내에서 일급 클래스로 취급되며, 클래스가 가지는 계산 프로퍼티나 메소드를 포함하는 것도 가능하며, 이니셜라이저를 가지거나 확장도 할 수 있으며 따라서 프로토콜을 따르도록 정의될 수 있다.

더 보기 »enum 타입 사용법 정리 – Swift

enum으로 대체할 수 있는 단위타입에 대해 – Swift

트위터에서 재밌는 링크를 하나 발견했다. https://speakerdeck.com/abizern/safer-programming-with-types 이 링크가 전달하는 내용의 요지는 어떤 값의 타입이 동일하지만, 단위가 다르다거나 하는 등의 이유로 다르게 평가될 수 있는 값을 어떻게 안전하게 관리하는가 하는 문제이다. 예를 들어서 어떤 물건의 가격이나, 길이는 실수값의 숫자들로 표현가능하지만, 이 둘이 호환되는 단위는 아니다. 시간과 길이, 무게와 부피 등 데이터 타입으로는 같지만 단위가 달라서 실질적을 호환될 수 없는 값들은 현실에 많이 있다. 예를 들어 반지름과 중심각을 받아서 원호의 길이를 계산하는 함수를 작성한다고 생각해보자. func getArcLength(radius: Double, angle: Dounle) -> Double… 더 보기 »enum으로 대체할 수 있는 단위타입에 대해 – Swift

enum in Swift

Enumerations

Enumeration(열거) 타입은 서로 연관을 맺고 있는 특정한 값들의 그룹을 의미한다. C의 enum과 비슷하다고 할 수 있는데, 그것보다는 하스켈의 대수타입과 보다 더 닮아있다.
C의 enum의 개념에 익숙하다면, C에서는 enum이 일련의 정수에 대해서 고유의 이름을 붙이는 것과 같다는 것을 알 수 있다. 하지만 Swift에서는 보다 유연한데, 각각의 멤버에 대해서 고유한 값을 붙일 수 있으며(물론 붙이지 않아도 상관없다) 이 값은 정수 뿐만 아니라 실수나 문자열, 유니코드 문자가 될 수도 있다.
또한, 열거 멤버 하나하나가 대수 데이터 타입으로 쓰일 수도 있다. 연관이 있는 멤버들을 하나의 열거 타입에 정의하되, 각각의 멤버는 다시 멤버를 구성하고 있는 하나 혹은 그 이상의 다른 값의 세트를 가질 수 있다.
열거 타입은 Swift에서 일급 객체이며, computed property 라든지, 인스턴스 메소드를 가질 수 있다. 또 initializer를 정의하여 기본적인 초기값을 가지고 생성될 수도 있다.더 보기 »enum in Swift