(swift) 18. Enumeration (열거형)

Reading time ~1 minute

[swift] 18. Enumeration (열거형)


열거형이란 연관성이 있는 값을 모아 놓은 것을 말한다.




열거형 예제

enum CompassPoint { // 연관된 항목을 나열하기 위한 열거형
    case north
    case south
    case east
    case west

    /*
    위 코드를 다음과 같이 작성할 수 있다.
    case north, south, east, west
    */
}

var direction = CompassPoint.east
print("direction: \(direction)")

direction = .west

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

출력 결과

direction: east
west



원시 값을 가지는 열거형

// 스위프트는 다양한 타입의 원시 값을 가질 수 있다.
enum CompassPoint: String { // CompassPoint의 각 항목이 String 원시 값을 가지게 한다.
    case north = "북"
    case south = "남"
    case east = "동"
    case west = "서"
}

var direction = CompassPoint.west

switch direction {
    // rawValue라는 프로퍼티를 통해 원시 값을 가져올 수 있다.
    case .north:
        print(direction.rawValue) 
    case .south:
        print(direction.rawValue)
    case .east:
        print(direction.rawValue)
    case .west:
        print(direction.rawValue)
}

실행 결과



원시 값을 가지고 열거형을 반환

enum CompassPoint: String { // CompassPoint의 각 항목이 String 원시 값을 가지게 한다.
    case north = "북"
    case south = "남"
    case east = "동"
    case west = "서"
}

let direction2 = CompassPoint(rawValue: "남")
print(direction2)

출력 결과

south



열거형의 연관 값을 반환

enum PhoneError {
    case unknown
    case batteryRow(String)
}

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

print("\nswitch")

switch error {
    case .batteryLow(let message):
        print(message)
    case .unknown:
        print("알 수 없는 에러입니다.")
}

출력 결과

배터리가 곧 방전됩니다.

switch
배터리가 곧 방전됩니다.

Gitpporter Privacy

Published on January 02, 2023

(PillSoGood) 지원

Published on November 20, 2022