[swift] 연관 값을 가진 열거형 정의하기

Swift에서는 강력한 타입 안정성과 유연성을 제공하는 연관 값을 가진 열거형을 정의할 수 있습니다. 연관 값을 가진 열거형은 각 케이스에 관련 데이터를 연결하여 유연한 모델링을 가능케 합니다.

연관 값을 가진 열거형 정의하기

enum OrderStatus {
    case pending
    case processing
    case completed(trackingNumber: String)
    case failed(errorCode: Int, errorMessage: String)
}

위의 예시에서 OrderStatus 열거형은 pending, processing, completed, failed 네 가지 케이스를 갖고 있습니다. completedfailed 케이스는 각각 연관 값인 trackingNumbererrorCode, errorMessage를 가지고 있습니다.

이렇게 정의된 OrderStatus 열거형은 다양한 주문의 상태를 표현할 수 있으며, 각 상태마다 관련 데이터를 저장할 수 있습니다.

연관 값을 활용하기

var status: OrderStatus = .completed(trackingNumber: "ABC123")
switch status {
case .pending:
    print("주문이 접수되었습니다.")
case .processing:
    print("주문이 처리 중입니다.")
case .completed(let trackingNumber):
    print("주문이 배송 완료되었습니다. 송장 번호: \(trackingNumber)")
case .failed(let errorCode, let errorMessage):
    print("주문이 실패했습니다. 에러 코드: \(errorCode), 메시지: \(errorMessage)")
}

위의 예시는 OrderStatus 열거형을 활용한 간단한 switch 문입니다. switch 문을 통해 각 상태에 따라 연관 값에 접근하여 다른 작업을 수행할 수 있습니다.

Swift의 연관 값을 가진 열거형은 복잡한 상태를 나타내고 다루는 데 매우 유용합니다.

참고 자료: The Swift Programming Language - Enums


swift, 열거형, 연관 값, 모델링, 데이터, switch문