(작성중)Swift 기본 문법 - Enumeration(열거형)Language/Swift2024. 11. 5. 21:21
Table of Contents
Enumeration(열거형)
- 연관된 상수들을 하나의 이름으로 묶은 것.
- 열거형에 포함된 상수들은 상수라고 하지 않고, Enumeration Case라고 부른다.
- Int나 String처럼 독립적인 타입이다. = 이름을 가지고 있다.
- 스코프 내에서 중복되지않는 이름을 가져야 한다.
- 열거형의 case는 값이다.
//Syntax
enum TypeName {
case caseName
case caseName, caseName
}
- case의 이름은 lowerCamelCase의 규칙을 따라야 하며, 중복되어서는 안된다.
Associated Values (연관 값)
Raw Values (원시 값)
각 case마다 기본으로 설정된 원시값을 저장할 수 있다. 즉 초기값을 저장할 수 있다.
타입을 지정할때는 enum뒤에 : 를 사용한다.
enum Country: String {
}
case에 값을 저장할때는 = 을 사용한다.
enum country: String {
case Korea = "Seoul"
}
String 타입의 Raw Value
enum Country: String {
case Korea = "Seoul"
case Japan
}
Country.Korea.rawValue //Seoul
Country.Japan.rawValue //Japan
원시값을 직접 할당할 수 있고, 원시값을 생략한경우 위의 코드처럼 case 이름과 동일한 문자열이 원시값으로 저장된다.
Int 타입의 Raw Value
만약 enum의 타입을 Int로 선언하고, 원시값 할당을 생략하는 경우,
0부터 1씩 증가하며 차례대로 자동으로 할당된다.
enum Sports: Int {
case soccer
case baseball
case golf
case basketball
}
Sports.soccer.rawValue //0
Sports.baseball.rawValue //1
Sports.golf.rawValue //2
Sports.basketball.rawValue //3
만약 중간에 하나만 원시값을 할당한다면 어떻게 될까?
enum Sports: Int {
case soccer
case baseball
case golf = 10
case basketball
}
Sports.soccer.rawValue //0
Sports.baseball.rawValue //1
Sports.golf.rawValue //10
Sports.basketball.rawValue //11
원시값을 가지고 있는 다음 case가 원시값을 가지고있지 않다면, 이때부터 다시 이전 원시값에서 1씩 증가하게 된다.
Character 타입의 Raw Value
항상 원시값을 직접 할당해주어야 한다.
그렇지 않으면 컴파일 에러가 발생한다.
enum Hanguel: Character {
case a = "ㄱ"
case b = "ㄴ"
case c = "ㄷ"
case d = "ㄹ"
}
Hanguel.a.rawValue
Hanguel.b.rawValue
Hanguel.c.rawValue
Hanguel.d.rawValue
'Language > Swift' 카테고리의 다른 글
Swift 기본 문법 - 클로저(Closure) 작성중 (0) | 2024.11.01 |
---|---|
Swift 기본 문법 - Double 타입에서 나머지 구하기(TruncastingRemainder) (0) | 2024.10.29 |
Swift 기본 문법 - Tuple (0) | 2024.10.28 |
Swift 기본 분법 - 반복문 (for문, while문) (0) | 2024.10.20 |
Swift 기본 문법 - Range Operator(범위 연산자) (0) | 2024.10.19 |
@Quaker.Lee :: 개발하는 퀘이커
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.