Swift & iOS

[Swift] 열거형 (Enum)

hammii 2022. 6. 16. 17:49
728x90
반응형

열거형이란?

  • 연관성이 있는 값들을 모아놓은 것
  • 하나의 새로운 타입처럼 사용할 수 있다. (대문자로 시작해야 함)

 

열거형 예시

enum CompassPoint: String {
    case north = "북"
    case south = "남"
    case east = "동"
    case west = "서"
}

var direction = CompassPoint.east
direction = .west // 컴파일러가 direction 변수는 CompassPoint 타입이라는 것을 추론하기 때문에 열거형 이름을 생략하고 .내부항목 으로도 사용 가능

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

let direction2 = CompassPoint(rawValue: "남")    // 원시값을 가지고 열거형을 반환하게 할 수 있음
  • 열거형은 연관 값을 가질 수 있다.
  • 열거형 내 항목이 자신과 연관된 값을 가질 수 있다는 것
    • 연관값을 추가하려면 열거형 항목 옆 소괄호 ()를 통해 타입을 적어주면 된다.
    • 연관 값을 추출하려면 switch 혹은 if 문을 사용하면 된다.
enum phoneError {
    case unknown
    case batteryLow(String)
}

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

switch error {
case .batteryLow(let message):
    print(message)
case .unknown:
    print("알 수 없는 에러입니다.")
}

 

 

출처: [패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online.

 

728x90
반응형