leeyang의 개발 성장기
[Swift] 열거형 - enum 기본편 본문
안녕하세요. 리양입니다 :)
오늘은 열거형인 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는 값을 지정하면 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 |