NOW-ON / iOS-Interview-Preparation

iOS 면접 준비
3 stars 0 forks source link

Enum의 caselterable과 연관 값(Associated Values) #15

Closed Glsme closed 1 year ago

Glsme commented 1 year ago

🗓️ 마감일

2023.01.29

💁 참여자

⚠️ 마지막으로 답변 단 사람이 이슈 close 하고 리드미에 항목 업데이트 해주세요.

Yun-YeoJin commented 1 year ago

Associated Values(연관값)

CaseIterable

Glsme commented 1 year ago

caselterable

Associated Values

LeeJoobang commented 1 year ago

CaseIterable

enum CompassDirection: CaseIterable {
  case north, south, east, west
}

let caseList = CompassDirection.allcases.map { $0 }.joined(separater: ", ")
pritn(caseList)
//north, south, east, west

Associated Value

enum Event {
  case homeScreenView
  case productSelect(index: Int)
  case productScreenView(product: Product)
}
heydoy commented 1 year ago

CaseIterable

모든 콜렉션의 값을 제공하는 타입

protocol CaseIterable

CaseIterable 프로토콜을 준수하는 타입은 일반적으로 연관값 없이도 순회하게 해준다. CaseIterable 타입을 사용하면 allCases 프로퍼티를 이용하여 콜렉션의 모든 타입의 케이스에 접근할 수 있다.

Enum's Associated Value

열거형도 각 케이스에 연관값을 저장할 수 있다. 추가적인 정보를 저장함으로써, 좀더 의미있는 데이터를 표현할 수 있다.

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}
wodyddml2 commented 1 year ago

caselterable

Associated Values