[Swift] 열거형(Enum)

ds-k.mo·2022년 4월 29일
0

Swift

목록 보기
16/22

열거형(Enumerations)이란

열거형은 관련된 값으로 이루어진 그룹을 공통의 형으로(type) 선언해 형 안전성(type-safety)을 보장하는 방법으로 코드를 다룰 수 있게 해준다.
enum키워드를 사용하여 선언

코드 예시

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

var direction = CompassPoint.east
direction = .west // west

// Switch 구문과 함께 다양하게 활용할 수 있다.

switch direction {
case .north:
    print("north")

case .south:
    print("south")
    
case .east:
    print("east")
    
case .west:
    print("west")
}

// 원시형 값도 넣을 수 있다.
enum CompassPoint2 : String {
    case north = "북"
    case south = "남"
    case east = "동"
    case west = "서"
}

var direction2 = CompassPoint2.north
direction2 = .west

switch direction2 {
case .north:
    print(direction2.rawValue)

case .south:
    print(direction2.rawValue)
    
case .east:
    print(direction2.rawValue)
    
case .west:
    print(direction2.rawValue)
} // 서

// 원시값으로 열거형을 반환하게 할 수 있다.
let direction3 = CompassPoint2(rawValue: "남") // south

// 열거형은 연관값도 가질 수 있다. (각 항목 옆에 소괄호로 표현)

enum PhoneError {
    case unknown
    case batteryLow(String) // 연관값의 타입을 소괄호에 표현
}

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

// 연관값의 추출 (Switch)


switch error {
case .batteryLow(let message):
    print(message)

case .unknown:
print("알 수 없는 에러입니다.")
} // "배터리가 곧 방전됩니다.

0개의 댓글