Hello World 通過擴充套件 App

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

現場演示

通過擴充套件 App 特徵 ,你可以避免定義明確的 main 方法。HelloWorld 物件的整個主體被視為主要方法

Version < 2.11.0

延遲初始化

根據官方文件App 使用稱為延遲初始化的功能。這意味著在呼叫 main 方法之後初始化物件欄位。

Version >= 2.11.0

延遲初始化

根據官方文件App 使用稱為 延遲初始化 的功能。這意味著在呼叫 main 方法之後初始化物件欄位。

DelayedInit 現已被棄用以供一般使用,但仍然支援 App 作為特例。支援將持續到確定並實施替換功能為止。

要在擴充套件 App 時訪問命令列引數,請使用 this.args

object HelloWorld extends App {
  println("Hello World!")
  for {
    arg <- this.args
  } println(s"Arg=$arg")
}

當使用 App 時,物件的主體將作為 main 方法執行,不需要覆蓋 main