관리 메뉴

java,javascript,android,php,sql,공부용,메모용

enum 열거형 / Xcode SwiftUI Playground 공부 본문

모바일/SwiftUI ios 공부

enum 열거형 / Xcode SwiftUI Playground 공부

yy_dd2 2021. 11. 29. 02:18
반응형

열거형

연관성이 있는 값들을 모아 놓는 것 (봄여름가을겨울 계절 같은것들)

열거형은 1급 클래스 형(first-class types)이어서 계산된 프로퍼티(computed properties)를 제공하거나

초기화를 지정하거나, 초기 선언을 확장해 사용할 수 있다

 

- enum 키워드를 사용하여 열거형을 정의

enum SomeEnumeration {

}

 스위치 구문과 사용하면 열거형 항목이 어떤건지 비교가 가능하다

// 나침판점
enum CompassPoint {
    case north
    case south
    case east
    case west
    //case north, south, east, west
}
// 열거형 변수 (내부 항목 이름으로만 사용 가능 .)
var direction = CompassPoint.east
direction = .west

switch direction {
case .north:
    print("north")
case .south:
    print("south")
case .east:
    print("east")
case .west:
    print("west")
}


 열거형의 항목은 원시값을 가질 수 있도록 할 수 있다

// 원시값으로 특정타입으로 가진 값을 갖도록 설정하기

enum CompassPoint2: String {
    case north = "북"
    case south = "남"
    case east = "동"
    case west = "서"
    //case north, south, east, west
}
var direction2 = CompassPoint2.east
direction2 = .west

결과 값

west

 

// 초기화된 원시값을 사용하려면 Raw 값 (Raw Values) 프로퍼티로 가져올 수 있다

switch direction2 {
case .north:
    print(direction2.rawValue)
case .south:
    print(direction2.rawValue)
case .east:
    print(direction2.rawValue)
case .west:
    print(direction2.rawValue)
}

결과 값

"서\n"

 

// 원시값을 가지고 열거형을 반환하도록 하는법

// 열거형 인스턴스를 생성할 때 매개변수로 원시값을 넘겨주면 된다
let direction3 = CompassPoint2(rawValue: "남")

 

열거형이 연관값을 어떻게 갖는지 확인

// 열거형은 연관값을 가질 수 있다
// 소괄호로 표현할 수 있음
// 열거형이 연관값을 어떻게 갖는지 확인

enum PhoneError{
    case unknown
    case batteryLow(String)
}

let error = PhoneError.batteryLow("배터리가 곧 방전됩니다.")

// 연관값을 추출하려면 if case 또는 switch 사용하면된다
switch error {
case .batteryLow(let message):
    print(message)
case .unknown:
    print("알 수 없는 에러입니다.")
}

 

 

 

반응형
Comments