Scala 3 是 Scala 2 语言的改进版本。
尽管有新语法,但 Scala 2.13 语言的很大一部分子集仍然有效。但并非全部,一些结构已被简化、限制或完全删除。然而,这些决策都是出于充分的理由,并注意提供良好的解决方法。
通常,对于每个不兼容性都有一个简单的交叉编译解决方案,因此从 Scala 2.13 迁移到 Scala 3 既容易又顺利。您可以在 不兼容性表 中找到不兼容性的语料库。
不过有一个例外,那就是替换 Scala 2 实验宏的新元编程框架。本章末尾的 元编程 部分对此进行了进一步解释。
除了元编程之外,Scala 2.13 源代码可以很容易地移植到 Scala 3。完成后,您将能够使用 Scala 3 的强大新功能,这些功能在 Scala 2 中没有同等功能。缺点是这些源代码不能再用 Scala 2.13 编译。但令人惊讶的是,这个新的 Scala 3 工件可以作为依赖项在 Scala 2.13 中使用。
正如我们将在更多细节中看到的那样,它允许向后和向前兼容。这是 Scala 编程语言历史上的一个突破。