SwiftUI에서 some의 의미

SteadySlower·2022년 8월 23일
0

SwiftUI

목록 보기
29/64

SwiftUI에서 볼 수 있는 some의 의미에 대해서 알아봅니다.

Opaque type

some 키워드는 opaque type을 만들어주는 keyword입니다. opaque는 불투명한, 불분명한 이라는 뜻입니다. 여러 타입을 아우를 수 있는 protocol과는 다르게 opaque type은 구체적인 하나의 타입을 의미합니다. 분명하게 한가지 타입이 정해져있는 상황이지요.

var body: some View {
    Text("Hello")
}

하지만 외부에서 보았을 때는 어떤 타입인지 모르게 하고 싶을 때 opaque 타입을 사용합니다. 내부의 클로저를 보면 리턴 타입이 Text라는 것을 알 수 있지만 외부에서는 그냥 View 타입 중에 하나라고 표현하고 싶을 때 사용합니다.

만약에 구체적인 타입과 사용하면?

some 키워드를 구체적인 타입에 붙여서 사용하면 위와 같은 에러가 발생합니다. 해석해보면 프로토콜이나 base class로만 opaque type을 정의할 수 있다는 내용입니다.

opaque 타입의 정의를 생각해보면 당연합니다. opaque 타입은 불분명하게 하여 숨기는데 사용합니다. 하지만 Text 같은 구체적인 타입에 붙여버리면 숨길 수가 없게되니 이런 에러가 발생하는 것이죠.

profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글