Scala 3 迁移指南

Scala 3 迁移模式

语言

Scala 3 编译器提供了一些有用的实用程序来简化迁移。

尝试运行 scalac 以了解这些实用程序

scalac 是 Scala 编译器的可执行文件,可从 Github 下载。

还可以使用 Coursier 通过 cs install scala3-compiler 进行安装,在这种情况下,scalac 别名为 scala3-compiler

$ scalac
Usage: scalac <options> <source files>
where possible standard options include:

...
-explain           Explain errors in more detail.
...
-rewrite           When used in conjunction with a `...-migration` source version, rewrites sources to migrate to new version.
...
-source            source version
                   Default: 3.0.
                   Choices: 3.0, future, 3.0-migration, future-migration.
...

迁移模式

-source:3.0-migration 选项使编译器对大多数已删除的功能持宽容态度,以警告代替错误打印。每个警告都强烈表明编译器甚至能够安全地将已弃用的代码片段重写为其交叉编译对应项。

我们称之为Scala 3 迁移编译

自动重写

一旦你的代码在迁移模式下编译,几乎所有警告都可以由编译器本身自动解决。要做到这一点,你只需要再次编译,这次使用 -source:3.0-migration-rewrite 选项。

请注意,编译器会修改代码!它的目的是安全的。但是你可能希望提交初始状态,以便打印编译器应用的差异,并在必要时还原它。

了解详情

  • 如果代码编译时出错,则不会应用重写。
  • 您无法选择应用哪些规则,编译器会运行所有规则。

您可以参考不兼容性表以查看 Scala 3 迁移重写的列表。

错误说明

-source:3.0-migration 模式处理了许多已更改的特性,但并非全部。使用 -explain 和/或 -explain-types 选项调用编译器时,编译器可以为您提供有关剩余错误的更多详细信息。

-explain-explain-types 选项不限于迁移。它们通常可以帮助您学习和使用 Scala 3 编写代码。

此页面贡献者