🔥 열거형 문법

382자
5분

Swift에서 열거형(Enumeration)은 관련된 값들을 그룹으로 묶어 표현할 수 있는 강력한 기능이에요. 열거형을 사용하면 코드의 가독성과 안정성을 높일 수 있답니다. 지금부터 Swift 열거형의 기본 문법에 대해 자세히 알아볼까요?

열거형 정의하기

Swift에서 열거형을 정의하려면 enum 키워드를 사용하고, 중괄호 {} 안에 열거형의 정의를 작성하면 됩니다.

enum 열거형이름 {
    // 열거형 정의 내용
}
swift

간단하죠? 그럼 실제 예시를 통해 살펴보도록 해요. 나침반의 4개 방향을 열거형으로 정의해 볼게요.

enum CompassPoint {
    case north
    case south
    case east
    case west
}
swift

위 코드에서 north, south, east, westCompassPoint 열거형의 열거형 케이스(enumeration case)라고 불립니다. 새로운 열거형 케이스를 도입할 때는 case 키워드를 사용하면 된답니다.

여러 개의 열거형 케이스를 한 줄에 쉼표(,)로 구분하여 나열할 수도 있어요.

enum Planet {
    case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}
 
swift

훨씬 간결하고 보기 좋죠?

열거형 타입과 값

Swift에서 열거형을 정의하면 새로운 타입이 생성된답니다. 다른 Swift 타입들과 마찬가지로 열거형의 이름(CompassPointPlanet 같은)은 대문자로 시작해요. 열거형 타입의 이름은 단수형으로 짓는 것이 좋습니다. 그래야 코드를 읽을 때 이해하기 쉽거든요.

var directionToHead = CompassPoint.west
swift

위 코드에서 directionToHead의 타입은 CompassPoint의 값 중 하나로 초기화될 때 추론됩니다. 일단 directionToHeadCompassPoint로 선언되면, 더 짧은 점(.) 문법을 사용하여 다른 CompassPoint 값을 설정할 수 있어요.

directionToHead = .east // directionToHead의 타입은 이미 CompassPoint로 알려져 있어요.
swift

directionToHead의 타입이 이미 알려져 있기 때문에, 값을 설정할 때 타입을 생략할 수 있답니다. 이렇게 하면 명시적으로 타입이 지정된 열거형 값을 다룰 때 코드의 가독성이 높아지죠.

열거형 활용 예제

이제 열거형을 실제로 활용하는 예제 코드를 살펴볼까요?

enum DaysOfWeek {
    case monday, tuesday, wednesday, thursday, friday, saturday, sunday
}
 
func printGreeting(on day: DaysOfWeek) {
    switch day {
    case .monday:
        print("월요일 아침 출근 화이팅!")
    case .tuesday, .wednesday, .thursday:
        print("평일엔 열심히 일해요!")
    case .friday:
        print("불금! 주말이 다가오네요~")
    case .saturday, .sunday:
        print("주말엔 푹 쉬어요~")
    }
}
 
let today = DaysOfWeek.friday
printGreeting(on: today) // 출력: "불금! 주말이 다가오네요~"
swift

위 코드는 요일을 나타내는 DaysOfWeek 열거형을 정의하고, 요일에 따라 다른 인사말을 출력하는 printGreeting(on:) 함수를 구현한 예시입니다. switch 문을 사용하여 요일에 따라 적절한 인사말을 선택하고 있어요.

today 상수에 .friday 값을 할당하고, printGreeting(on:) 함수를 호출하면 "불금! 주말이 다가오네요~"라는 메시지가 출력되는 걸 확인할 수 있답니다.

지금까지 Swift 열거형의 기본 문법과 활용 예제에 대해 알아보았습니다. 열거형을 사용하면 관련된 값들을 그룹으로 묶어 표현할 수 있고, 코드의 가독성과 안정성을 높일 수 있답니다. 열거형을 적재적소에 사용하면 더욱 깔끔하고 안전한 Swift 코드를 작성할 수 있겠죠?