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