[Swift] Enumerations

Logan·2020년 10월 26일
1

Enumberation

연관된 상수들을 하나의 이름으로 묶은 자료형을 Enumeration(열거형)이라고 합니다.

열거형 안에 있는 상수들은 Enumeration Case 또는 Case라고 합니다.

Enumeration의 가장 큰 특징은 경우의 수가 고정되어 있을 경우 사용합니다. (정렬방식, 날짜, 모니터 연결 방식, 성별 등)

enum Alignment {
   case left
   case right
}

enum 키워드로 선언합니다.
열거형은 구조체와 클래스처럼 독립적인 형식이기 때문에, UpperCamelCase로 이름을 짓습니다.

{ } 안에는 열거형에 저장할 case를 선언합니다.
보통 한 줄에 하나씩 선언하고, 여러 case를 한 번에 선언하고 싶을 땐 ,로 나열할수도 있습니다.

enum Alignment {
   case left, right
}

case 역시 코드에서 의미가 변하지 않는 하나의 독립적인 값입니다.
열거형 case를 기준으로 코드를 분기할 때는 주로 switch 문을 사용합니다.

Raw Values

Enumeration Case는 그 자체로도 독립적인 값이지만, 내부에 또 다른 독립적인 값도 저장할수도 있습니다. 이것을 Raw Value(원시값)이라고 부릅니다. 다른 언어와 호환을 위해 사용되기도 합니다.

enum Alignment: Int {
   case left
   case right = 100
   case center
}

Alignment.left.rawValue // 0
Alignment.right.rawValue // 100
Alignment.center.rawValue // 101

필수값은 아니기 때문에 선택적으로 사용하면 되고, 선언 이후에 원시값을 바꾸는 건 불가능합니다.

원시값을 직접 지정해줄수도 있고, IntString처럼 원시값의 형식만 지정하고 원시값을 직접 저장하지 않는다면, 형식에 따라 원시값이 자동으로 저장됩니다.

  • Int 선언된 순서대로 0부터 1씩 증가하는 값이 원시값으로 저장

  • String case이름과 동일한 문자열이 원시값으로 저장

profile
iOS개발자 꿈나무

0개의 댓글