本節介紹 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 平臺,這樣的話,可以直接修改映射的類做到跨平臺的支持。
以上就是本節內容,歡迎大家關注~