본문 바로가기

Protocol2

some (opaque type)으로 type 숨기기 Opaque type의 특징은 caller는 해당 값이 구체적으로 어떤 것인지 알수 없다는 점입니다. 그래서 이름도 불확실하다는 의미에서 opaque인 거겠죠? 그렇다면 이런 opaque type이 왜 구체적인 타입을 숨기는 지, 숨김으로써 얻게 되는 이점은 무엇인지 알아보겠습니다. 아래 예시를 보면, Farm이라는 객체 안에 hungryAnimals라는 Collection타입의 변수가 있고 해당 변수를 looping하며 연산을 하는 feedAnimals()라는 메서드가 있습니다. extension Farm { var hungryAnimals: LazyFilterSequence { animals.lazy.filter(\.isHungry) } func feedAnimals() { for animal in .. 2024. 1. 23.
some에 대해 알아보기 (any와 비교) some은 any처럼 protocol 앞에 붙일 수 있는 키워드이고 기능도 any와 비슷해 보여 설명을 읽어봐도 잘 와닿지 않았습니다. Opaque type이라고도 불리는 some은 보통 '역제네릭 타입, caller에게 concrete type을 숨기기 위함이다' 라는 말로 주로 설명이 되어있습니다.모두 맞는 말이지만 이해는 잘 안되고 "그냥 any 쓰면 안되는 건가?" 라는 생각만 들더라구요. 그러던 중에 Apple에서 제공한 영상을 보고 확실히 용법 차이가 이해가 되어서 기록해봅니다. 그 둘 간의 차이를 표로 먼저 정리해서 보겠습니다. some (default로 사용 권장) any 타입 정보 유무 O Hold fixed concrete type. (구체적인 타입에 대한 정보를 가짐.) Infer .. 2024. 1. 22.
반응형