Swift 공식문서 읽기...Day22

김민종·2021년 9월 9일
0

Swift Doc

목록 보기
22/26

Opaque Types

opaque 리턴타입의 함수, 메소드는 자신의 리턴타입에 대한 정보를 나타내지 않는다. 대신 함수가 지원하는 프로토콜의 관점에서 리턴타입을 기술한다. 타입정보를 숨기는 것은 모듈과 그 모듈을 호출하는 경계에서 사용된다. opaque타입을 리턴하는 경우 아이덴티티-컴파일러는 타입정보에 접근할 수 있다.

Returning an Opaque Type
제네릭 타입은 함수의 호출부에서 함수의 파라미터와 리턴값이 될 타입을 선택한다.제너릭 함수는 어떤 타입이 오더라도 동작할 수있게 만들어져 있다. 하지만 opaque 리턴타입에는 함수의 구현부에서 리턴하는 값을 결정하도록 한다.
opaque리턴 타입에서 제네릭을 사용할 때 항상 하나의 타입을 리턴해야 한다는 요구사항은 문제가 없다.

Differences Between Opaque Types and Protocol Types
opaque타입과 프로토콜 타입은 유사해 보이지만 다른점은 타입의 아이덴티티를 보존할 수 있냐 없냐에 따라 다르다. 프로토콜타입은 유연성을 높이는 역할이며 opaque타입은 실제타입을 더 강력하게 보장할 수 있다. 프로토콜 타입의 함수를 리턴타입으로 사용하면 어떤 타입이라도 반환할 수 있는 유연성을 얻게된다. 하지만 프로토콜 타입을 사용하면 구체적인 타입정보가 반환되지 않아 몇몇의 작업은 포기해야 한다.

profile
신입 ios개발자입니다!

0개의 댓글