文章目录
定义
有时候一个类型可能会特别长,特别是在引入泛型之后。我们可以使用typealias
为某一类型起一个名字:
kt
typealias Cookies = HashMap<String, List<String>>
fun main() {
val cookies: Cookies = HashMap()
cookies["sessionId"] = listOf("abc123")
}
为嵌套类起别名:
kt
typealias MyClassInner = MyClass.Inner1.Inner2
class MyClass {
class Inner1 {
class Inner2
}
}
为函数起别名:
kt
typealias Callback = (String) -> Unit
泛型别名
当类型中带有泛型时,也可以连带泛型:
kt
typealias Callback<T> = (Result<T>) -> Unit
fun request(callback: Callback<String>) =
callback(Result.success("成功"))
fun main() {
request { print(it.getOrNull()) }
}
成功