已移除: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
方法 來替代此類「程式」物件。