-
9-3. 제네릭스 : 타입 별명(Type Alias)Study(종료)/Kotlin 22.09.13 ~ 12.18 2022. 11. 13. 15:34
9장
9-3. 제네릭스 : 타입 별명(Type Alias)
9-3. 제네릭스 : 타입 별명(Type Alias)
제네릭과 직접적인 연관은 없지만, 복잡한 제네릭 타입을 다룰 때 도움이 될 수 있는
타입 별명 (type alias)라는 언어 기능에 대해 작성해보겠다.
코틀린에서 타입 별명을 도입한 이유는 기존 타입의 이름을 대신할 수 있는
새 이름을 도입할 수 있게 하기 위해서라고 한다.
주 목적은 제네릭 타입이나 함수 타입처럼 긴 이름을 짧게 부를 수 있도록 해주는 것 이다.
타입 별명 정의는 typealias 키워드로 이뤄지며, 그 다음 별명이 오고 = 기호 다음 실제 타입이 온다
typealias IntPredicate = (Int) -> Boolean typealias IntMap = HashMap<Int, Int>
이제 이렇게 정의한 이름을 = 오른쪽에 있는 타입 대신 쓸 수 있다.
val map = IntMap().also { it[1] = 2 it[2] = 3 }
타입 별명이 새 타입을 도입(introduce)하는것은 아니고,
기존 타입을 가리키는 새로운 방법을 추가하는 것 뿐이다.
즉 타입 별명과 원래의 타입을 자유롭게 바꿔서 쓸 수 있다.
개인적으로 9장에서는 용어들이 어려워서 원서랑 비교해가면서 공부해봤지만,
그래도 이해가 안가는 부분이 꽤 많았다.
특히 9-2 변성에서 out position, in position, 공변성, 가변성 등의 내용들이
한글로 잘 풀어져있어도 이해하기 힘든 내용 같아 보이는데,
처음에는 번역이 잘 안돼서 이해가 안가는건가 싶었지만, 원서에 보니 그대로 작성돼 있었다.
이런 내용에 대해 질문하려면 어느정도 나도 질문을 잘 해야될텐데,
어떻게 질문을 해야 할지 감이 안잡혀서 혼자 좀 더 찾아봐야겠다고 생각했다.
10장은 애너테이션(Annotation)과 리플렉션(Reflection)이다.
어노테이션은 들어봤는데, 리플렉션은 앞에 내용만 살짝 보니 API라고 한다.
슬슬 추워지고 게을러지고 싶어져서 스터디 준비도 원래 월~목요일 정도에 다 끝냈는데
지금은 목~일요일 까지 하면서 준비하는 요일도 점점 밀리고 있다.
쉽지않은데, 그래도 잘 마무리 됬으면 좋겠다.
반응형'Study(종료) > Kotlin 22.09.13 ~ 12.18' 카테고리의 다른 글
10-2. 어노테이션과 리플렉션 : 리플렉션 (0) 2022.11.19 10-1. 어노테이션과 리플렉션 : 어노테이션 (0) 2022.11.17 9-2. 제네릭스 : 변성 (Variance) (0) 2022.11.13 9-1. 제네릭스 : 타입 파라미터 (0) 2022.11.10 8-2. 클래스 계층 이해하기 : 추상 클래스와 인터페이스 (0) 2022.11.06