티스토리 뷰

안녕하세요 Hani입니다. ☺️

이번에는 allCases와 AllCases의 차이에 대하여 알아보겠습니다.

 

 

저는 CaseIterable 프로토콜은 보통 타입 안에 있는 case들에 접근하기 위해 사용해왔어요.🥺

allCases만 썼는데 AllCases도 궁금해져서 프로토콜을 뜯어보려고 합니다.

 

AllCases는 associatedtype키워드 덕분에 특정 타입으로 제한되어 있지 않습니다.

또한, AllCases는 Collection 프로토콜을 순응하는 타입만 받고 있네요.

 

 

간단히 말하면 Collection 프로토콜을 채택한 타입은 배열처럼 쓸 수 있습니다.

따라서 AllCases는 채택한 곳의 모든 case들을 element로 가질 수 있는 배열같은 타입이라고 할 수 있어요.

 

AllCases는 모든 case들을 element로 "가질 수 있는" 배열같은 타입입니다.

값을 가지고 있는 상태가 아니에요! 처음엔 비어있습니다.

 

 

 

allCases는 타입 안에 들어있는 모든 case들을 선언된 순서대로 AllCases에 담고 있습니다.

 

 

물론 element를 더 가질 수 있도록 할 수도 있습니다. 😎

 


References

https://developer.apple.com/documentation/swift/caseiterable/

 

댓글