Opaque 리턴타입(Swift 5.1)

이 글을 다음 문서를 부분 번역한 것입니다.
https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html

Opaque 리턴 타입이 있는 함수나 메소드는 리턴 값에 대한 정보를 숨깁니다. 함수의 리턴 타입에 대한 구체적인 타입 정보를 제시하는 대신에, 리턴 값은 그 것이 따르는 프로토콜만으로 기술됩니다. 타입 정보를 숨기는 것은 모듈이 외부에 내놓는 코드에서 실제 리턴값의 타입은 내부에서만 유지관리될 수 있게 만들기 때문에 유용하게 사용될 수 있습니다. 리턴 값의 타입이 프로토콜 타입인 것과는 달리 Opaque 타입은 동일성을 유지합니다. 그리고 이때 컴파일러는 타입 정보에 액세스할 수 있지만, 모듈의 클라이언트는 그렇게 할 수 없습니다.

Opaque 리턴타입(Swift 5.1) 더보기

[c/objetive-c] 불투명 타입

불투명타입(Opaque Type)

코어 파운데이션 관련 문서를 보면 불투명타입(Opaque Type)이라는 말이 자주 나온다. 코어 파운데이션에서 객체처럼 사용되는 모든 타입들은 불투명타입(CFArrayRef, CFStringRef 등등)이다. "불투명"하다고 해서 감이 쉽게 오지 않는데, 간단히 풀어 쓰자면 "내부의 데이터 구조를 들여다볼 수 없는 타입"이라고 보면 된다.

코코아에서 객체를 만들 때 인스턴스 변수는 기본적으로 protected 나 private으로 만들어지기 때문에 이러한 인스턴스 변수는 객체가 이를 읽거나 쓸 수 있는 메소드(accessor)를 제공하지 않는 이상 객체 속에 어떤 변수들이 있는지 외부에서는 알 수 없다.

[c/objetive-c] 불투명 타입 더보기