Scala единица возврата. Как установить возвращаемое значение программы

Прототип метода для main::

def main(args: Array[String]): Unit

Обычно приложение должно указывать код возврата при его завершении. Как это обычно делается в scala, если main возвращает Unit? Должен ли я вызвать System.exit(n)?

Кроме того, документы предупреждают, что я не должен использовать main вообще, хотя это, похоже, противоречит руководству по началу работы).

Какая самая лучшая практика здесь?

Ответ 1

Да, вы выходите с кодом, отличным от нуля, вызывая либо 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)
}