CaseIterable 프로토콜

썹스·2022년 12월 20일
0

Swift 문법

목록 보기
66/68

CaseIterable 프로토콜

CaseIterable 프로토콜은 열거형에서 많이 사용되는 프로토콜입니다.

CaseIterable 프로토콜을 채택한 열거형은 타입 속성allCases을 사용하여 열거형의 케이스를 배열로 반환할 수 있습니다.

enum Rainbow: CaseIterable{
    case red
    case orange
    case yellow
    case green
    case blue
    case navy
    case violet
}

Rainbow.allCases
//[__lldb_expr_50.Rainbow.red, __lldb_expr_50.Rainbow.orange, __lldb_expr_50.Rainbow.yellow, __lldb_expr_50.Rainbow.green, __lldb_expr_50.Rainbow.blue, __lldb_expr_50.Rainbow.navy, __lldb_expr_50.Rainbow.violet]

열거형의 모든 케이스를 배열로 반환할 경우 다양한 기능을 사용할 수 있습니다.
대표적인 기능으로는

  • 열거형의 케이스 개수 확인
  • 고차함수 사용 가능

등이 있습니다.

✅ 열거형의 케이스 개수 확인

enum Rainbow: CaseIterable{
    case red
    case orange
    case yellow
    case green
    case blue
    case navy
    case violet
}

print(Rainbow.allCases.count)  // 7

✅ 고차함수 사용

enum Rainbow: CaseIterable{
    case red
    case orange
    case yellow
    case green
    case blue
    case navy
    case violet
}

print(Rainbow.allCases.map{ "\($0)" })
// ["red", "orange", "yellow", "green", "blue", "navy", "violet"]

즉, CaseIterable 프로토콜은 열거형에서 배열에 다양한 기능을 사용하고 싶을 때 채택하는 프로토콜입니다.

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글