快速上手 Kotlin 开发系列之类型映射

本节介绍 Kotlin 中类型映射。

Kotlin 中有一个比较有意思的关键字:typealias,有点类似于 C/C++ 代码中的 define,可以将一个类映射到另一类上,但是不同的是 C/C++ define 是宏定义会在编译时转换成对应的类,而 Kotlin 中的 typealias 则表示两个类是完全一致的。

在写代码时,不管是写原始类还是映射类,都是可以的。例如下面的示例中使用 A 类映射一个 File 类。

public typealias A = File

在创建对象时既可以用 A 类,也可以用 File 类,它俩是完全一致的。所以下面的代码完全可以正常编译执行。

fun main() {
    val a:A = File("")
}

其实 typealias 关键字相当于给一个类起一个别名。

在 Kotlin 中,非常多的对象都是通过 typealias 来映射过来的,例如 HashMap 对象,就是通过 typealias 直接映射了 Java 的 HashMap。

public actual typealias HashMap<K, V> = java.util.HashMap<K, V>

为什么要这么做呢?

如果将来 Kotlin 对 HashMap 做一些特性优化的时候,就可以直接在 Kotlin 中优化而不需要去兼容 Java 的 HashMap。

也可以做一些特性的定制,或者说跨平台的定制,我们知道 Kotlin 是不光运行在 JVM 平台的,也可以其他的非 JVM 平台,这样的话,可以直接修改映射的类做到跨平台的支持。

以上就是本节内容,欢迎大家关注~

长按关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值