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 好也不差。但是,一些新功能将帮助您优化程序