快速上手 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 平臺,這樣的話,可以直接修改映射的類做到跨平臺的支持。

以上就是本節內容,歡迎大家關注~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章