斯卡拉主要归还单位.如何设置程序的返回值

use*_*956 12 scala

main的方法原型:

def main(args: Array[String]): Unit
Run Code Online (Sandbox Code Playgroud)

通常,应用程序需要在退出时指定返回代码.如果main返回Unit,那通常如何在scala中完成?我应该调用System.exit(n)吗?

此外,文档警告我不应该使用main,尽管这似乎与入门指南不一致).

这里的最佳做法是什么?

0__*_*0__ 22

是的,通过调用java.lang.System.exit(n)或更好sys.exit(n)(这是Scala的等价物)退出时,代码不等于零.

如果App在主应用程序对象中混入,则不定义方法,main但可以直接在对象的主体中写入其内容.

例如

object Test extends App {
  val a0 = args.headOption.getOrElse {
    Console.err.println("Need an argument")
    sys.exit(1)
  }
  println("Yo " + a0)
  // implicit: sys.exit(0)
}
Run Code Online (Sandbox Code Playgroud)