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