Kotlin 1.5.0 – 2021 年的首個大版本

kotliner發表於2021-05-25

歡迎新版本計劃表的第一個功能版本 —— Kotlin 1.5.0 

這個版本提供了穩定的語言特性,如 JVM records,密封介面,內聯值類,幷包括了新的預設的 JVM IR 編譯器。 您在 Kotlin 1.4.30 和 Kotlin 1.5.0 EAP 版本中預覽特性的反饋切實幫助我們去穩定這些功能。 我們非常感激您的協助! 謝謝!

已經有多達 25,000 名開發者嘗試過 IntelliJ IDEA 上新的 JVM IR 編譯器了。

您會逐漸留意到其優勢。 新的編譯器與 Kotlin/Native 和 Kotlin/JS IR 編譯器共享標準統一的管道和業務邏輯,這將使我們能夠同時為所有平臺實現大多數特性,最佳化和錯誤修復。 它還將允許新增在所有平臺上自動執行的自定義處理和轉換

您對於 Kotlin 1.5.0 還有什麼疑問? 在 5 月 25 日的 Kotlin 線上活動,Roman ElizarovSvetlana Isakova,以及其他 Kotlin 團隊的成員,已準備就緒回答您的問題。

Kotlin 1.5 線上活動登記


在這篇博文中,您將會看到以下內容的概述:

自動升級到 Kotlin 1.5.0

如果您使用的是 IntelliJ IDEA 或 Android Studio,您可以透過它提供的選項,當 Kotlin 的新版已就緒,將自動升級到最新的版本。

瞭解更多有關 Kotlin 1.5.0 安裝的資訊。

穩定的語言特性

Kotlin 1.5.0 包含了在 1.4.30 中提供預覽的新語言特性的穩定版本:

  • 對 JVM records 的支援以及保持和 Java 最新特性—— record 類的互操作性。 要將 Kotlin 類編譯為 Java 程式碼中的 record,將其宣告為 data 類,並透過 @JvmRecord 註解標記:@JvmRecord data class User(val name: String, val age: Int)瞭解使用 JVM records 所需條件的更多資訊。
  • 密封介面 sealed 修飾符在介面與在類上的原理相同——密封介面的所有實現在編譯時均為已知狀態。
  • 密封類的改進 以前,所有子類都必須與密封類放在同一個檔案中。 現在它們可以位於相同編譯單元和相同程式包的任意檔案中。
  • 內聯類是隻包含值為基礎型別的類的子集。 您可以用它們為某個指定型別的值進行封裝,而不會因為記憶體分配而產生額外的開銷。 透過 value 修飾符進行宣告。

瞭解更多有關 Kotlin 1.5.0 語言特性的資訊

標準庫及測試庫的改進

無符號整數型別的新穩定API是最令人期待的 Kotlin 1.5.0 庫改進,這是根據我們在 Kotlin 1.5.0-RC 博文中調查所得的結果。

標準庫提供了許多有用的功能,包括:

  • 用於無符號整數型別的新穩定 API,以及它們的範圍,級數和函式。 瞭解更多有關無符號整型的資訊。
  • java.nio.file.Path 的擴充套件函式,以 Kotlin 慣用風格呼叫的現代非阻塞 Java IO
  • String 和 Char API 的改進,包括用於更改字串和字元大小寫的新的與語言環境無關的 API,用於在字元及其整數程式碼和數值之間進行轉換的一組新函式,以及更多相容多平臺的 char 函式。
  • Duration API 變動,包括內部使用 Long 值表示,並提供新的屬性以獲取 duration 的 Long 值。

測試庫帶來了一系列重要的改進:

  • 只需要在多平臺專案的公共源集裡對 kotlin-test 進行單次依賴。
  • 當您指定唯一的 kotlin-test 依賴項時,會自動為 Kotlin/JVM 源集選擇測試框架。
  • 大量斷言函式的更新。

瞭解更多有關庫改善的資訊。

Kotlin/JVM

Kotlin 1.5.0 帶來了:

Kotlin/Native

Kotlin 1.5.0 提供了:

  • 在 linuxX64 和 iosArm64 目標的除錯模式下支援編譯器快取。 當編譯器快取啟用,除第一次除錯編譯外,大部分除錯編譯的速度都將更快。 測量結果表明,我們測試專案的編譯速度提高了200%
  • 停用內建的記憶體洩漏檢查器,以避免可能導致的應用程式崩潰問題。 瞭解如何啟用記憶體洩漏檢查器(如有必要)。

Kotlin/JS

Kotlin/JS 的 新 Kotlin/JS IR 編譯器邁向 Beta 。 許多著名的框架和庫 KVisionfritz2doodle 等等已向 IR 編譯器敞開懷抱。

如果您是庫的作者,則可以透過向後相容性庫遷移來新增您的庫。

另一個額外的改進是透過 webpack 5 而非 webpack 4 來構建 JS bundle 包。

如何安裝 Kotlin 1.5.0

如果您使用的是 IntelliJ IDEA 或 Android Studio,它會建議在版本釋出後自動更新 Kotlin 到 1.5.0。 您也可以按照說明手動更新。

您仍然可以下載這些 IDE 的最新版本以保證對 Kotlin 的全面支援:

  • 用於為不同平臺開發 Kotlin 應用程式的 IntelliJ IDEA
  • 用於開發 Android 和跨平臺的移動應用程式的 Android Studio

確保您已將 kotlinx 庫更新到相容版本,並在現有專案的構建指令碼中指定 Kotlin 版本為 1.5.0

如果需要命令列編譯器,請在 GitHub 版本頁面下載。

如果遇到任何問題

Kotlin 1.5 線上活動

參加 5 月 25 日的 Kotlin 1.5 線上活動,Kotlin 團隊將回答您對最新版本的所有問題。 您可以詢問任何想知道的事情,或者您沒有任何問題,只對回答感興趣,那也不錯。 活動將持續1.5小時。

透過 #kotlin15ask 在 Twitter 上釋出您的問題,或在表格中新增你的問題。

Kotlin 1.5 線上活動登記

我們還將於 5 月 27 日至 28 日在 Reddit 上進行 “Ask Me Anything”(AMA) 討論,以處理所有未解決的問題,同時也會回答新問題。

相容性

與所有主要版本一樣,某些先前宣佈的變更的棄用週期將在 Kotlin 1.5.0 版本結束。 所有這些情況都經過了語言委員會的仔細審查,並在 Kotlin 1.5 相容性指南中列出。 您也可以在 YouTrack 上瀏覽這些變更。

更多的觀看及閱讀材料

觀看Kotlin YouTube:

閱讀 Kotlin 部落格:

透過 Kotlin 文件瞭解更多資訊:

外部貢獻者

我們要感謝???所有外部貢獻者,此版本中包含了他們的 Pull Request:

Jinseong JeonMads AgerIvan GavrilovicpyosSteven SchäferIaroslav PostovalovscaventzKristoffer AndersenBingranStefan WolfVictor Turanskyfjjohnchenjustin.weiNelson OsackyMikhail GalaninMichael HoisieKris HallKevin BierhoffJiaxiang ChenHung NguyenCedric Champeau.

YouTrack 的最佳問題報告者

我們要感謝???社群的所有成員,他們透過向 YouTrack 報告問題幫助我們改進了此版本! 我們列出了前 20 名報告者,在此向他們致以衷心感謝:

Morgan Bartholomew (118 個問題); Marc Knaup (78 個問題); Ryan Nett (61 個問題); Louis CAD (48 個問題); Daniil Stepanov (44 個問題); AndroidDeveloperLB (39 個問題); Victor Turansky (38 個問題); Jinseong Jeon (35 個問題); Zac Sweers (25 個問題); Łukasz Wasylkowski (22 個問題); Tianyi Guan (21 個問題); Christoph Sturm (20 個問題); Axel Fontaine (19 個問題); Alexander Nozik (18 個問題); Robert Stoll (18 個問題); Björn Kautler (18 個問題); Róbert Papp (14 個問題); Andreas Malik (14 個問題); Lorenzo Neumann (14 個問題); Iaroslav Postovalov (14 個問題).


安裝 Kotlin 1.5.0 註冊參加 Kotlin 1.5 線上活動

相關文章