在 GitHub 上编辑此页面

已删除:DelayedInit

不再支持对 DelayedInit 特质的特殊处理。

一个结果是 App 类,它使用 DelayedInit 现在部分损坏。您仍然可以使用 App 作为设置主程序的简单方法。示例

object HelloWorld extends App {
  println("Hello, world!")
}

但是,代码现在在对象的初始化器中运行,在某些 JVM 上这意味着它只会被解释。因此,最好不要将其用于基准测试!此外,如果您想访问命令行参数,则需要为此使用显式的 main 方法。

object Hello:
  def main(args: Array[String]) =
    println(s"Hello, ${args(0)}")

另一方面,Scala 3 提供了一种方便的替代方案,可以使用 @main 方法 来替代此类“程序”对象。