Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

leeyang의 개발 성장기

[Swift] 열거형 - enum 기본편 본문

Swift

[Swift] 열거형 - enum 기본편

leeyang 2019. 9. 3. 13:03

안녕하세요. 리양입니다 :)

오늘은 열거형인 Enumeration에 관련된 글을 적어볼까 합니다.

열거형이 우선 무슨 의미 인지 알아봅시다!

열거형: 명명된의 집합을 이루는자료형이다. 열거자 이름들은 일반적으로 해당 언어의상수역할을 하는식별자이다(출처:wiki)

공통의 의미로 된 상수들의 집합이라고 생각하시면 됩니다.

쉽게 예를 들어 학교에서 1학년이 1~8반 까지 있다면

1학년이란 큰 그룹(eume)에 1~8반(case)을 가진다고 생각하시면 됩니다.


Syntax

    enum FirstGrade {
        case first
        case second
        ...
        case eighth
    }

Swift에서는 Objetive-C와 달리 Enum이 다양하게 사용이 가능한데, 그 이유는 여러가지 타입을 사용할 수 있기 때문입니다.

Objetive-C에서는 integer 타입만이 열거형에 가능하지만 Swift는 String, character, Integer, floating 등이 가능합니다.

예)

    enum FirstGrade: String {
        case first = "1"
        case second = "2"
        ...
        case eighth = "8"
    }

Raw Values

Swift도 Objetive-C와 같이 case에 raw값이 지정 가능합니다.

또한 암시적으로 raw의 값을 할당 할 수가 있는데 Int나 String일 경우 가능합니다.

String은 case의 이름을 따릅니다.

Int의 임의적 할당
값을 변경할 시 차이

Int는 값을 지정하면 1씩 증가하여 임의적으로 할당합니다.

반면 String은 정확하게 할당된 값만 바뀌고 case로 이름으로 할당됩니다.

Associated Values

연관값은 열거형의 케이스(case)에 추가적인 정보를 덧 붙일 수 있는 독특한 방법입니다

그래서 필요한 정보를 레이블만 따서 case로 나타냅니다.

예를 들어 바코드는 네가지 숫자가 있거나 QR코드로 된 두가지 형태가 있다면

upc인 형태는 4개의 숫자의 정보를 추가적으로 받아야합니다. 

 

enum  Barcode  {

case  upc(Int,  Int,  Int,  Int)

case  qrCode(String)

}

swift의 enum은 다양하게 활용할 수 있으며, enum의 개념을 알아야 그 활용의 사례도 알려드릴 수 있다고 생각합니다.

그래서 먼저 기본을 정리 후 다음엔 활용법을 공유하려 합니다 :)

'Swift' 카테고리의 다른 글

[Swift] ExpandableCell 만들기  (0) 2019.09.15
[Swift] TableViewCell identifier에 관하여  (0) 2019.09.09
[Swift] for문 탐색을 거꾸로하기  (0) 2019.09.01
Comments