본문 바로가기
Swift

Swift enum - 열거형

by HaningYa 2020. 7. 9.
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

댓글