已删除: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
方法 来替代此类“程序”对象。