Scala 2.13 和 Scala 3 共用相同的應用程式二進制介面 (ABI)。
ABI 是 Scala 程式碼在位元組碼或 Scala.js IR 中的表示。它決定 Scala 程式的執行時間行為。
使用 Scala 2.13 和 Scala 3 編譯相同的原始碼會產生非常相似的位元組碼。不同之處在於有些功能已變更,例如 lazy vals 的初始化已獲得改善。
共用 ABI 也確保 Scala 2.13 和 Scala 3 類別檔案可以由相同的 JVM 類別載入器載入。同樣地,Scala 2.13 和 Scala 3 sjsir
檔案可以由 Scala.js 連結器連結在一起。
此外,它讓我們免於在執行時間遇到令人驚訝的行為。它讓從 Scala 2.13 遷移到 Scala 3 在執行時間崩潰和效能方面非常安全。
乍看之下,Scala 程式在 Scala 3 中的執行時間特性既不比 Scala 2.13 好也不差。然而,一些新功能將有助於您最佳化程式
此頁面的貢獻者
內容
- 相容性參考
- 原始碼層級
- 類別路徑層級
- 執行時間
- 元程式設計
- 遷移工具之旅
- 使用 -Xsource:3 的 Scala 2
- Scala 3 遷移模式
- 遷移教學
- 先備條件
- 移植 sbt 專案(使用 sbt-scala3-migrate)
- 移植 sbt 專案(手動)
- 跨建構巨集函式庫
- 混合 Scala 2.13 和 Scala 3 巨集
- Scala 3 語法改寫
- 不相容性表格
- 語法變更
- 已移除的功能
- 脈絡抽象
- 其他已變更的功能
- 類型檢查器
- 類型推論
- 編譯器選項
- 編譯器選項查詢表
- 新的編譯器選項
- Scala 2 和 Scala 3 之間的 Scaladoc 設定相容性
- 編譯器外掛程式
- Kind Projector 遷移
- 外部資源