swift enum

agnusdei·2023년 8월 9일
0

Swift에서의 열거형(Enum)은 연관된 값들의 그룹을 나타내기 위한 강력한 타입입니다. 열거형은 특정 타입의 값을 나열하고, 이들 값을 쉽게 사용할 수 있는 방법을 제공합니다. 열거형의 개념과 활용 예시를 상세하게 설명하고 다양한 예시를 보여드리겠습니다.

열거형의 기본 개념:

열거형은 서로 연관된 값들의 그룹을 나타냅니다. 각 값은 고유한 이름을 가지며, 해당 값들은 열거형의 가능한 모든 경우(case)를 나타냅니다. Swift의 열거형은 C 언어나 Objective-C의 열거형과는 다소 다르게, 연관 값(associated values)이나 메서드를 가질 수 있습니다.

간단한 열거형 정의:

enum CompassDirection {
    case north
    case south
    case east
    case west
}

열거형 값 사용:

var direction: CompassDirection = .north

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

연관 값이 있는 열거형:

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}

var productCode: Barcode = .upc(8, 85909, 51226, 3)

switch productCode {
case .upc(let numberSystem, let manufacturer, let product, let check):
    print("UPC: \(numberSystem)-\(manufacturer)-\(product)-\(check)")
case .qrCode(let code):
    print("QR Code: \(code)")
}

메서드와 연산 프로퍼티를 가진 열거형:

enum Planet {
    case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
    
    var numberOfMoons: Int {
        switch self {
        case .mercury, .venus, .earth, .mars:
            return 0
        case .jupiter, .saturn:
            return 4
        case .uranus, .neptune:
            return 2
        }
    }
    
    func description() -> String {
        switch self {
        case .earth:
            return "The Blue Planet"
        default:
            return "A planet"
        }
    }
}

열거형의 활용 예시:

  1. 상태 관리: 앱 내의 다양한 상태를 열거형으로 나타내어 명확하게 관리할 수 있습니다.
  2. 옵션 선택: 선택 가능한 여러 옵션을 열거형으로 표현하여 간결하고 명확한 코드를 작성할 수 있습니다.
  3. 에러 처리: 함수가 에러 상황을 나타내기 위해 열거형을 반환하여 오류 처리를 효율적으로 할 수 있습니다.
  4. 유한한 경우의 타입: 고정된 값의 경우의 수를 나타내기 위해 사용될 수 있습니다.

Swift의 열거형은 데이터 구조의 유연성을 향상시키며, 코드의 가독성을 높이고 에러를 방지하는 데 도움을 줍니다. 상황에 따라 간단한 열거형부터 연관 값이나 메서드를 가진 복잡한 열거형까지 다양하게 활용할 수 있습니다.

0개의 댓글