728x90
Enum : 열거형
연관된 항목들을 묶어서 표현
딱 정해진 값만 열거형 값에 속할 수 있음
각 열거형이 고유의 타입으로 인정됨
- 제한된 선택지를 주고싶을 때
- 정해진 값 외에는 입력받고 싶지 않을 때
- 예상된 입력 값이 한정되어 있을 때
enum Apple {
case Macbook
case MacbookPro
case iPad
case iPadPro
case iPhone11
case iPhone11Pro
case appleWatch
}
var device : Apple = Apple.iPad
var device : Apple = .iPad
//change value
device = .iPadPro
enum 은 원시값도 가질 수 있다.
enum Apple {
case Macbook = "맥북"
case MacbookPro = "맥북프로"
case iPad = "아이패드"
case iPadPro = "아이패드 프로"
case iPhone11 = "아이폰11"
case iPhonePro = "아이폰프로"
case appleWatch = "애플워치"
}
var device : Apple = Apple.iPad
var device : Apple = .iPad
//원시값 들고오기
print(device.Macbook.rawValue) //맥북프로
참고로 원시값의 일부만 지정하면 나머지는 자동으로 값이 정해진다.
(String -> 이름과 같은 문자열, Int -> 0부터 자동 increment)
enum 은 연관값을 가질 수 있다.
enum Apple {
case Macbook(price : Int)
case MacbookPro(price : Int, owner: String)
case iPad
case iPadPro
case iPhone11
case iPhone11Pro
case appleWatch
}
var device : Apple = Apple.Macbook(price: 99999)
device = .MacbookPro(price: 99999, owner: "하닝야")
항목 순회 - CaseIterable
enum Apple : String, CaseIterable {
case Macbook = "맥북"
case MacbookPro = "맥북프로"
case iPad = "아이패드"
case iPadPro = "아이패드 프로"
case iPhone11 = "아이폰11"
case iPhonePro = "아이폰프로"
case appleWatch = "애플워치"
}
let allCases : [Apple] = Apple.allCases
print(allCases) // [Apple.Macbook, Apple.MacbookPro, Apple.iPad ... Apple.appleWatch]
728x90
'Swift' 카테고리의 다른 글
Swift: 프로퍼티와 메서드 (0) | 2020.07.13 |
---|---|
Swift: 구조체 vs 클래스 (0) | 2020.07.13 |
Swift Set (0) | 2020.07.09 |
Swift 알고리즘에 쓰이는 문법 정리 (0) | 2020.07.07 |
Swift String to Array (component) (0) | 2020.07.03 |
댓글