[ Swift ] 열거형

김보람's avatar
Oct 09, 2024
[ Swift ] 열거형

열거형은 서로 관련이 있는 값들을 하나의 집합으로 묶어 그룹을 만들고, 코드에서 특정한 값만 선택할 수 있도록 제한할 때 사용한다

  • enum 키워드를 사용해 선언한다

    enum 이름 {
        case 이름1
        case 이름2
        case 이름3, 이름4, 이름5 
    }
  • 대문자 카멜케이스를 이용해 선언하는 것이 일반적이다.

  • 각 case는 그 자체가 고유의 값이며, 열거형내에 고유한 원시값을 가질 수 있다.

    • 원시값에 접근할때는 .rawValue를 이용한다.

    • 원시값으로 Int type을 가질때 할당되지 않은 값은 인덱스의 값을 가진다.

      enum Sum: Int {
          case A
          case B = 1
          case C, D, E
      }
      
      var sum : Sum = .A
      print(sum.rawValue) // 0 출력
    • 원시값으로 String type을 가질때 할당되지 않은 값은 케이스이름의 값을 가진다.

      enum Sum: String {
          case A
          case B = "동대문"
          case C, D, E
      }
      
      var sum : Sum = .A
      print(sum.rawValue) // A 출력
  • 케이스별 연관된 추가 정보를 저장할 수 있어, 더 많은 데이터를 효율적으로 관리할 수 도 있다.

    enum LoginStatus {
        case success(username: String)
        case failure(errorCode: Int)
        case inProgress
    }
    
    
    var currentLoginStatus = LoginStatus.success(username: "Alice")
    
    switch currentLoginStatus {
    case .success(let username):
        print("Welcome, \(username)!")
    case .failure(let errorCode):
        print("Login failed with error code: \(errorCode)")
    case .inProgress:
        print("Login is in progress...")
    }
    
    //출력 : Welcome, Alice!

Share article

b0-0d