Home/hcl / hcl domino / >Kotlin 2.3.0:多平台工具鏈強化與JVM/Wasm互通性提升

Kotlin 2.3.0:多平台工具鏈強化與 JVM/Wasm 互通性提升

JetBrains 於 2024 年發佈 Kotlin 2.3.0,重點聚焦於多平台工具鏈的穩定化以及 JVM 與 WebAssembly 之間的互通性。對於需要在 JVM、原生、Wasm 與 JavaScript 之間共享代碼的企業開發者而言,此版本提供了多項實際可落地的改進。

1. JVM 端:支援 Java 25 與 Gradle 9.0

Kotlin 2.3.0 首次正式支援 Java 25 bytecode,意味著可直接使用 Java 25 新增的語法特性與 API,無需等待 Kotlin 的後續語言更新。配合 Gradle 9.0 的相容性,開發者可以在 Gradle 9.0 專案中無縫使用 Kotlin 2.3.0,並透過新的「generated sources」API 更方便管理編譯器產出的 Kotlin 來源檔。這對於大型專案的 Gradle 依賴解析與增量編譯有顯著效益。(Kotlin docs)

📂 收合(點我收起)

plugins {
    id 'org.jetbrains.kotlin.jvm' version '2.3.0'
}

kotlin {
    jvmToolchain(25)
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
    kotlinOptions {
        freeCompilerArgs += ["-Xexplicit-api=strict"]
    }
}

2. 原生端:Swift 互通與 C/Objective‑C 進入 Beta

原生編譯器在 2.3.0 版中加入了 Swift export 的進一步優化,支援原生列舉與可變參數,並將 C 與 Objective‑C 函式庫匯入推進至 Beta 階段。對於 iOS/macOS 目標,這降低了跨語言呼叫的開銷,並提升了編譯速度。iOS、tvOS 與 watchOS 的最低支援版本亦被調升,確保新功能能在最新作業系統上正常運作。(iThome, 2024)

3. WebAssembly:完整類別名稱與例外處理預設啟用

在 WebAssembly 目標上,Kotlin 2.3.0 於 wasmWasi 目標預設啟用新版 WebAssembly 例外處理提案,並啟用 KClass.qualifiedName 以在執行期取得完整類別名稱。這使得從 JVM 轉移到 Wasm 時,除錯與日誌輸出不再失真,提升跨平臺開發的一致性。若需在 wasmJs 目標下使用例外處理,可透過編譯器選項手動開啟。
(Kotlin docs)

📂 收合(點我收起)

kotlin {
    wasm {
        target("wasmWasi") {
            browser {
                // 例外處理預設開啟
                useWasmExceptionHandling(true)
            }
        }
    }
}

4. JavaScript:suspend 函式與 LongArray 互通

JavaScript 目標新增兩項互通功能:可將 suspend 函式直接匯出給 JavaScript 使用,並提供以 BigInt64Array 表示 LongArray 的選項。這對於需要在前端使用 Kotlin 協程的場景尤為重要,能減少 JavaScript 與 Kotlin 之間的轉換成本。舉例來說,以下程式碼展示了如何在 JS 中呼叫 Kotlin 的 suspend 函式:

📂 收合(點我收起)

import { mySuspendedFunction } from './kotlinProject.js';

async function callKotlin() {
    const result = await mySuspendedFunction();
    console.log(result);
}

5. 語言層級穩定化:未使用回傳值檢查與型別別名

雖然本篇聚焦於工具鏈,但值得注意的是,Kotlin 2.3.0 將「巢狀型別別名」與「when 表達式的資料流窮盡性」提升為穩定功能,並新增未使用回傳值檢查機制。這些改進使得跨平臺代碼更易於維護,減少因遺漏回傳值而導致的錯誤。
(Kotlin docs)

6. 影響與升級建議

  • 若專案已使用 Gradle 9.0,直接將 Kotlin 版本升至 2.3.0,並檢查 Java 25 的相容性。
  • 對於 iOS 目標,提前評估 Swift export 的變更,以確保現有原生呼叫不受影響。
  • 若使用 Wasm,確認是否需要在 wasmJs 目標開啟例外處理,以維持一致的錯誤行為。
  • 在 JavaScript 與 Kotlin 之間共享大型 LongArray 時,考慮使用 BigInt64Array 以優化效能。

結論

Kotlin 2.3.0 以多平台工具鏈的穩定化與跨語言互通性為核心,為企業級開發者提供了更高效、更一致的開發體驗。從 JVM 端的 Java 25 支援,到 Wasm 與 JS 的互通改進,皆讓 Kotlin 成為真正的「跨平台程式語言」選擇。隨著 Gradle 9.0 與 Kotlin 2.3.0 的同步推進,企業可在不大幅改動現有基礎設施的情況下,逐步享受這些新功能帶來的效益。

參考資料與原文來源


🧠本文由 DreamJ AI 技術新聞生成系統 自動撰寫並進行語意優化,僅供技術研究與教學使用。
請以原廠公告、CVE 官方資料與安全建議為最終依據。

>Kotlin 2.3.0:多平台工具鏈強化與JVM/Wasm互通性提升

🧠 本文章與所附圖片部分內容為 AI 生成或 AI 輔助產製。文中提及之商標、品牌名稱、產品圖片及相關標識, 其著作權與商標權均屬原權利人所有,本網站僅作為資訊呈現與示意使用

最新文章

推薦文章

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

分析完成 ✔