設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

編程語言 Kotlin 2.0.0 現(xiàn)已發(fā)布,K2 編譯器進(jìn)入穩(wěn)定狀態(tài)

2024/5/22 11:48:39 來源:IT之家 作者:問舟 責(zé)編:問舟
感謝IT之家網(wǎng)友 有鯽雪狐、吾愛317、Devifish、咩咩洋、Apllo 的線索投遞!

IT之家 5 月 22 日消息,JetBrains 官方宣布 Kotlin 2.0.0 正式發(fā)布,其代碼已上傳到 GitHub 庫。

Kotlin 2.0 亮點(diǎn)

K2 編譯器現(xiàn)已進(jìn)入穩(wěn)定狀態(tài)

默認(rèn)用于所有平臺(JVM、Native、Wasm 和 JS),且性能顯著提升。性能方面,JetBrains 團(tuán)隊編譯了 1000 萬行代碼以確保其質(zhì)量穩(wěn)定,涉及 18,000 多名開發(fā)人員和 80,000 多個項目。

IDE 支持

新版 Kotlin 插件已集成在 IntelliJ IDEA 和 Android Studio 中。

新 Compose 編譯器已集成 Gradle 插件

從 Kotlin 2.0.0 開始,org.gradle.jvm.environmentGradle 屬性默認(rèn)會與 Kotlin 版本一同公布,從而更好地區(qū)分 Kotlin 多平臺庫的 JVM 和 Android 版本。

Kotlinx-metadata-jvm 庫:

kotlinx-metadata-jvm 庫現(xiàn)已進(jìn)入穩(wěn)定狀態(tài)?

Lambda 函數(shù):

Kotlin 2.0.0 引入了一種使用生成 lambda 函數(shù)的新默認(rèn)方法“invokedynamic”,可生成更小的二進(jìn)制文件。

使用 Apple 平臺上的標(biāo)記(signposts)監(jiān)控 Kotlin / Native 中的 GC 性能

以前,開發(fā)者只能通過查看日志來監(jiān)控 Kotlin / Native 的垃圾回收器 (GC) 的性能。然而,這些日志并未集成到 Xcode Instruments 中(后者是一款用于調(diào)試 iOS 應(yīng)用性能問題的工具包)。從 Kotlin 2.0.0 開始,GC 會通過 Instruments 中提供的特殊標(biāo)記來報告暫停,從而允許在應(yīng)用程序內(nèi)進(jìn)行自定義日志記錄。

使用 Objective-C 方法解決 Kotlin / Native 中的沖突:

Objective-C 方法可以用不同的名稱,但必須具有相同的數(shù)量和類型參數(shù)。例如,locationManager:didEnterRegion:locationManager:didExitRegion:。在 Kotlin 中,它們都具有相同的簽名,因此嘗試使用時也會觸發(fā)沖突重載報錯。

放在以前,開發(fā)者必須手動解決沖突才能避免此編譯錯誤,而為了改善 Kotlin 與 Objective-C 的互操作性,Kotlin 2.0.0 引入了新的 @ObjCSignatureOverride 注釋。該注釋會指示 Kotlin 編譯器忽略沖突的重載,以防從 Objective-C 類繼承多個具有相同參數(shù)類型但參數(shù)名稱不同的函數(shù)。

支持 Kotlin / Wasm 中的命名導(dǎo)出:

支持命名導(dǎo)出和無符號原始類型的 @JsExport 函數(shù),從而提高了可讀性,并幫助開發(fā)者更好地管理模塊之間的依賴關(guān)系,還能使 Kotlin 和 JavaScript 模塊之間的代碼共享更容易。

此外, Kotlin 2.0.0 還支持生成 Kotlin / Wasm 中 TypeScript 聲明文件(IT之家注:實(shí)驗性功能,可能會隨時被刪),能夠根據(jù) @JsExport Kotlin 代碼中的聲明生成 TypeScript 定義,從而讓 IDE 和 JavaScript 工具使用這些定義來提供代碼自動補(bǔ)完功能。

默認(rèn)使用 Binaryen 優(yōu)化生產(chǎn)版本:

Kotlin / Wasm 工具鏈現(xiàn)在會在生產(chǎn)編譯過程中對所有項目默認(rèn)應(yīng)用 Binaryen 工具,而無需進(jìn)行手動設(shè)置。官方估計,這將進(jìn)一步改善項目的運(yùn)行時性能并減小二進(jìn)制文件大小。當(dāng)然,此更改僅影響生產(chǎn)編譯。開發(fā)編譯過程保持不變。

用于多平臺項目中編譯器選項的新 Gradle DSL 實(shí)驗性功能(可能隨時被刪):

Kotlin 2.0.0 引入了全新的 Gradle DSL,可用于在多平臺項目中更輕松地配置編譯選項。此前在 Kotlin 中使用 Gradle 配置編譯選項只能針對較低的層面,例如單個任務(wù)、編譯過程或源代碼集。有了這個新的 Gradle DSL,您就可以直接設(shè)置全局配置編譯選項。

替換枚舉類值泛型函數(shù)?的穩(wěn)定方式

在 Kotlin 2.0.0 中,訪問枚舉類值的方式變得更加穩(wěn)定。Kotlin 2.0.0 引入了新的專門用于枚舉的穩(wěn)定函數(shù) enumEntries<T>(),可返回給定枚舉類型 T 的所有枚舉條目列表。

Kotlin 之前還引入了一個枚舉類的屬性 entries,目前已經(jīng)進(jìn)入穩(wěn)定狀態(tài)并將與上述函數(shù)一起替代“不再推薦使用”的 values ()。

穩(wěn)定的 AutoCloseable 接口

自 Kotlin 2.0.0 開始,開發(fā)者常用的 AutoCloseable 接口宣布進(jìn)入穩(wěn)定狀態(tài),它可以允許開發(fā)者輕松關(guān)閉資源,并包含兩種有用的函數(shù):

  • use () 擴(kuò)展函數(shù),用于在選定的資源上執(zhí)行給定的塊函數(shù),并保證能夠在無論是否拋出異常的狀態(tài)下都能正確關(guān)閉相關(guān)資源。

  • AutoCloseable () 構(gòu)造函數(shù),用于創(chuàng)建 AutoCloseable 接口的實(shí)例。

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:編程語言,kotlin
  • 日榜
  • 周榜
  • 月榜

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知