Kotlin的1.2版本將提供一個實驗性功能,可跨平臺重用代碼并兼容Java 9模塊系統。
開發人員可以通過預期和實際的聲明,在平臺特定的部分上表示通用代碼的依賴關系。該聲明指定了一個API,而實際的聲明是針對特定于平臺的API,或者是外部庫中現有API的類型別名。與此同時,標準庫具有用于在跨平臺代碼中執行數學運算的kotlin.math包。
kotlin.math包也為JavaScript數學填充提供了更好的精度。
Kotlin 1.2的標準庫與新引入的Java 9模塊系統兼容,該系統禁止拆分包(多個.jar文件在同一包中聲明類)的。在Kotlin 1.2中,kotlin-stdlib-jdk7和kotlin-stdlib-jdk8工件取代了舊的kotlin-stdlib-jre7和kotlin-stdlib-jre8。
為了支持Java 9,Kotlin 1.2也從kotlin-reflect庫中移除了kotlin.reflect包中的棄用聲明。開發人員需要切換到使用kotlin.reflect.full包中的聲明,該包在Kotlin 1.1中首次推出。
Kotlin 1.2中,類型推斷改進包括了使編譯器能夠使用類型推斷中的類型轉換信息。如果開發人員調用返回類型參數(如T)的泛型方法,并將返回值轉換為特定類型(例如Foo),則編譯器知道此調用的T需要綁定到Foo類型。這對Android開發人員來說尤為重要。另外,編譯器現在可以選擇將所有警告視為錯誤。
除此之外,Kotlin 1.2還增強了以下這些功能:
* 支持注釋中的數組文本,簡化了編碼;
* 使用更一致的語法;
* 新的反射API允許開發人員檢查lateinit變量是否已經被初始化。
* lateinit修飾符可以用在頂級屬性和局部變量上。
Kotlin的前身是JVM的一種語言,但是現在已經擴展到JavaScript。在今年春天, Google支持它和Java一樣作為構建Android移動應用程序的機制時,Kotlin得到了一個質的提升。