Kotlin 类型别名

文章目录

定义

有时候一个类型可能会特别长,特别是在引入泛型之后。我们可以使用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()) }
}
复制代码
成功
相关推荐
Clf丶忆笙39 分钟前
搭建支持多语言开发的Quarkus环境:Java、Kotlin与Scala全栈指南
java·开发语言·云原生·kotlin·scala·quarkus
唐青枫19 小时前
Kotlin also 详解:附加操作、链式调试与实战示例
kotlin
Kapaseker19 小时前
Android 开发来看看 Kotlin 2.4.0 更新了个啥
android·kotlin
plainGeekDev1 天前
Handler/Looper → Coroutines
android·java·kotlin
黄林晴1 天前
重磅:继SDK、NDK后谷歌新推出ADK!
android·kotlin
赏金术士1 天前
Android 组件化学习项目(Kotlin + AGP8+)
android·学习·kotlin
我是唐青枫1 天前
Kotlin apply 详解:对象初始化、链式配置与实战示例
kotlin
AD钙奶-lalala1 天前
kotlin反射
android·开发语言·kotlin
赏金术士1 天前
Android 项目模块化与 Feature 组件实践
android·kotlin·模块化
_qingche2 天前
H2 数据库到 MySQL 数据迁移
java·数据库·spring boot·mysql·spring·重构·kotlin