티스토리 뷰

반응형

 

 


Type Alias Declaration
타입 별명 선언

타입 별명 선언(type alias declaration)은 존재하는 타입에 대한 별칭을 당신의 프로그램에 알려줍니다. 타입별명(Typealias)은 typealias 키워드를 사용해서 선언됩니다. 그 예시는 아래와 같습니다. 

 


위의 코드를 보시면 Pair, Typle이라는 각 2, 3개의 Int 타입을 갖는 별칭이 만들어 졌습니다. 맨 앞에는 typealias를 붙이고, Int 2개 3개로 이루어진 튜플타입에 각각 Pair, Tuple이라는 별침을 만들어 준 상황이 됩니다. 

이로서 해당 별칭을 타입으로 지정해서 그에 맞는 값을 할당해줄 수 있게 되었습니다. 

이렇게 특정 타입에 대한 별칭(alias)이 지어진 뒤, 해당 별명은 프로그램 내에 언제든 존재하는 기존 타입을 대신해서 원본타입과 동일한 타입 역할로서 사용할 수 있습니다. 기존의 존재하는 타입은 기존 타입으로서도, 별명 타입으로서도 사용이 가능해지는 것입니다. 

typealias는 새로운 타입을 생성하는 것은 아닙니다. 단순히 별칭을 사용했을때 실제 타입을 참조, 대신해서 사용하는 것을 허용해주는 것입니다.

 

 

 


Using genericType parameter in typealias
typealias에 제네릭 타입 지정하기

typealias 선언은 별칭 타입에 존재하는 제네릭 타입 인자를 지정하고자 할 때, 제네릭 인자값을 사용할 수도 있습니다. typealias는 모든 제네릭 인자값을 사용해서 구체적인 타입을 제공할 수 있습니다. 이와 같은 제네릭 타입 사용 예시는 아래와 같습니다. 

 


제네릭타입 인자와 함께 typealias가 선언되면, 제네릭 타입의 제약에 맞게 제약을 따르는 값도 할당되어야 합니다. 제네릭타입의 제약을 준수해야하는 것이지요.

 

 

제네릭타입 인자를 가진 별칭의 제네릭 제한보다, 별칭을 지정하려는 원본 타입의 제약이 더 좁은 경우에는 실제 별칭의 제네릭 타입 역할은 제한적일 수 있습니다.

위의 경우, 값 타입을 Hashable로 지정하려는 별칭타입, DictionaryOfInts였지만, 원본 값 타입이 더 좁은 범위의 타입인 Int이므로, Int로서의 역할밖에 수행할 수 없는 모습을 볼 수 있습니다. 

 

 


Using alias in Protocols
프로토콜 내에서 별칭사용하기

프로토콜 선언부 내에서, typealias는 별칭을 지으려는 원본 타입에 대해 더 짧고, 편리한 이름을 제공할 수 있습니다. 이는 매우 자주 사용될 수 있습니다. 그 사용 예는 아래와 같습니다. 

 


typealias를 사용하지 않았다면, sum 메서드는 T.Iterator.Element라는 타입을 모두 명시해줘야했을 것입니다. 하지만 typealias를 활용하면 간결하게 T.Element만 명시해서 사용할 수 있습니다.

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함