코틀린(Kotlin)

코틀린(kotlin) : Type Aliases(1.1버전부터 나옴)

알통몬_ 2018. 2. 12. 16:00
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


이번 포스팅에서는 1.1버전에 새롭게 나온 Type aliases에 대해 공부합니다.


Type aliases

Type aliases 는 기존 타입에 대한 대체할 수 있는 이름을 제공합니다.

만약 타입의 이름이 너무 길다면, 간단한 이름으로 변경할 수 있습니다.


typealiases 는 제네릭 타입에 유용하게 사용할 수 있습니다.

typealias usersInfo = MutableMap<String, String>

fun main(args: Array<String>) {

fun users(a : usersInfo) : usersInfo {
a["이름1"] = "박성균"
a["아이디1"] = "altongmon"
return a
}

}

제네릭의 경우 위처럼 typealias 를 선언하고, 메서드의 파라미터나, 반환 타입으로

사용 가능 합니다. 

val users : usersInfo = mutableMapOf(Pair("1","11"), Pair("2","22"))

변수의 타입으로 가능하구요.


Inner and Nested 클래스에도 typealias를 줄 수 있습니다.

class AAA {
inner class Inner
}
class BBB {
inner class Inner
}

typealias AInner = AAA.Inner
typealias BInner = BBB.Inner


마지막으로 메서드에도 typealias 지정이 가능한데요.

typealias Predicate<T> = (T) -> Boolean
fun foo(p: Predicate<Int>) = p(42)

fun main(args: Array<String>) {
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]"
}


이렇게 사용 가능합니다.

직접타이핑 해보시며 실행해보시면 금방이해가 되실 거에요 ^^


감사합니다.

반응형