Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- variable
- package
- animation
- Yocto
- set
- List
- 콜렉션
- python
- Android
- 코틀린
- Class
- Flutter
- pushnamed
- 플러터
- 크롤러
- textstyle
- Collection
- DART
- 함수
- import
- kotlin
- 파이썬
- function
- text
- ML
- map
- crawler
- 클래스
- 다트
- 웹크롤러
Archives
- Today
- Total
조용한 담장
코틀린(Kotlin) 클래스(Class) : 타입 별명 (Type aliases) 본문
코틀린 클래스의 type alias 에 대해 알아보자
원문 https://kotlinlang.org/docs/reference/type-aliases.html 을 보며 정리.
typealias 을 사용하여 존재하는 타입의 새로운 이름 또는 별칭을 만들어 준다.
타입의 이름이 너무 길때 짧은 이름을 만드는데 유용하다.
typealias NodeSet = Set<Network.Node>
typealias FileTable<K> = MutableMap<K, MutableList<File>>
함수 타입도 가능하다.
typealias MyHandler = (Int, String, Any) -> Unit
typealias Predicate<T> = (T) -> Boolean
중첩 클래스에도 쓸 수 있다.
class A {
inner class Inner
}
class B {
inner class Inner
}
typealias AInner = A.Inner
typealias BInner = B.Inner
type alias 는 새로운 type 을 만드는 것이 아니라 원래의 타입과 동일한 것이다.
typealias Predicate<T> 을 지정하고 Predicate<Int> 를 사용한다면 컴파일러는 (Int) -> Boolean 로 처리한다.
typealias Predicate<T> = (T) -> Boolean
fun foo(p: Predicate<Int>) = p(42)
fun main() {
val f: (Int) -> Boolean = { it > 0 }
println(foo(f)) // prints "true"
val p: Predicate<Int> = { it > 0 }
println(listOf(1, -2).filter(p)) // prints "[1]"
}
'kotlin' 카테고리의 다른 글
코틀린(Kotlin) 클래스(Class) : 객체 표현식 과 선언 (Object Expressions and Declarations) (1) | 2020.01.02 |
---|---|
코틀린(Kotlin) 클래스(Class) : 제네릭(Generics) (0) | 2020.01.02 |
코틀린(Kotlin) 클래스(Class) : 중첩 클래스 와 내부 클래스 (Nested and Inner Classes) (0) | 2019.12.31 |
코틀린(Kotlin) 클래스(Class) : Sealed Classes (0) | 2019.12.31 |
코틀린(Kotlin) 클래스(Class) : 열거 클래스 (Enum classes) (0) | 2019.12.31 |
Comments