[swift] 열거형 데이터 타입과 관련된 Swift의 기능

열거형은 Swift의 강력하고 유용한 데이터 타입 중 하나입니다. 열거형을 사용하면 관련 있는 값을 그룹화하고, 직관적으로 코드를 작성할 수 있습니다. 이번 글에서는 Swift에서 열거형 데이터 타입과 관련된 몇 가지 기능을 알아보겠습니다.

1. 선언 및 정의

Swift에서 열거형을 선언하려면 enum 키워드를 사용합니다. 열거형은 특정 유형의 연관된 값을 정의할 수 있습니다. 예를 들어, 다음과 같이 Direction이라는 열거형을 선언할 수 있습니다.

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

2. 값 할당

각각의 열거형 케이스는 특정 값과 연결될 수 있습니다. 이 때 값의 유형은 열거형의 정의에 따라 다를 수 있습니다. 예를 들어, Direction 열거형 각 케이스에는 해당 방향의 좌표를 할당할 수 있습니다.

enum Direction {
    case north
    case south(coordinate: Int)
    case east(coordinate: Int)
    case west(coordinate: Int)
}

3. 사용

열거형의 케이스를 사용하기 위해서는 switch 구문이나 if-else 구문을 이용할 수 있습니다. 예를 들어, 다음과 같이 switch 구문을 사용하여 열거형 값을 처리할 수 있습니다.

let direction = Direction.south(coordinate: 10)

switch direction {
case .north:
    print("북쪽입니다.")
case .south(let coordinate):
    print("남쪽입니다. 좌표: \(coordinate)")
case .east(let coordinate):
    print("동쪽입니다. 좌표: \(coordinate)")
case .west(let coordinate):
    print("서쪽입니다. 좌표: \(coordinate)")
}

4. 연관 값 추출

열거형의 케이스에 할당된 연관 값을 추출할 때는 switch 구문의 let 패턴 매칭을 사용할 수 있습니다. 위의 예제에서 .south 케이스의 좌표 값을 추출한 것과 같이, let 키워드를 사용하여 값을 추출할 수 있습니다.

5. 원시 값 할당

Swift에서는 열거형의 각 케이스에 자동으로 값을 할당할 수 있는 기능을 제공합니다. 이를 원시 값(assigning raw values)이라고 합니다. 예를 들어, 다음과 같이 Direction 열거형에 원시 값 할당을 해볼 수 있습니다.

enum Direction: Int {
    case north = 0
    case south = 1
    case east = 2
    case west = 3
}

6. 원시 값 사용

원시 값이 할당되어 있는 열거형 케이스는 해당 값으로 열거형 변수를 초기화할 수 있습니다. 예를 들어, 위의 예제에서는 다음과 같이 rawValue를 사용하여 열거형 변수를 초기화할 수 있습니다.

let direction = Direction(rawValue: 2)

결론

Swift에서 열거형은 데이터를 그룹화하고, 직관적으로 코드를 작성하는 데에 아주 유용한 기능입니다. 열거형은 유형 안정성을 보장하고, 명확하게 코드를 읽을 수 있게 해줍니다. 열거형의 다양한 기능을 활용하여 코드를 더 간결하고 유지보수하기 쉽게 작성할 수 있습니다.

참고 자료