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