Google力推的開發語言Kotlin釋出了最新1.3.60版本,這個版本微幅改善了語言功能,包括內聯類別(Inline Class)以及顯示的錯誤訊息,也對IntelliJ IDEA功能和Kotlin Eclipse IDE擴充套件進行了更新,另外,在Kotlin/JS部分,現在使用Gradle擴充套件會自動生成原始碼映射(Source Map),幫助開發者除錯。

Kotlin 1.3.60沒有增加或是變更重大的語言功能,僅針對實驗性功能內聯類別進行更新,以及改善容易造成開發者混淆的錯誤訊息。這個版本最佳化了內聯類別實例的數值比較,過去內聯類別兩個實例的相等比較,底層的值會進行不必要的打包(Boxing)動作,現在Kotlin會在位元組碼中,為每個內聯類別產生特殊的靜態方法equals-impl0,來比較底層的值,在未打包的實例上進行相等比較的時候,Kotlin會在背後呼叫該方法以避免額外的打包。

官方提到,在少數情況下,開發者閱讀編譯器輸出的錯誤訊息,會無法明確了解錯誤發生的原因,因此官方改善了任何可能造成混淆的錯誤訊息。其中之一是,由於Kotlin支援尾隨Lambda約定,也就表示Lambda可以被移出括號之外從下一行開始,但在部份時候,編譯器會認為下一行的大括號為函式的Lambda參數(下圖),但事實上並非如此,而現在針對這樣情況的錯誤訊息,開發者可以應用系統提供的自動修復,為上一行末加入一個分號。

官方也重新設計了Scratch檔案,Scratches讓開發者能在專案同一個IDE中,創建程式碼草稿,並即時的進行實驗,但這個程式碼片段並不與專案綁定。經過改進的Scratches,程式碼片段執行結果顯示更加直覺,包括多行輸出整合顯示,並突出顯示給定的行數。

這個Kotlin版本也加入了新的Java Kotlin轉換器,新轉換器在功能上做了許多改善,對開發者最方便的是,現在一次轉換多個檔案的時候,轉換器會一併分析這些檔案,官方表示,Kotlin現在預設使用這個新的轉換器。在Eclipse IDE擴充套件更新上,現在支援單個模組的漸增編譯(Incremental Compilation),不過因為還是實驗性功能的原因,開發者必須要在屬性設定中手動啟用。

在Kotlin/JS的更新上,開發者可以使用Gradle擴充套件自動為JavaScript程式碼生成原始碼映射,當程式碼發生錯誤時,能方便地用來進行除錯。


Advertisement

更多 iThome相關內容