在Scala中使用App特征和主要方法之间的区别

有什么区别

object Application extends App { println("Hello World") } 

 object Application { def main(args: Array[String]): Unit = { println("Hello World"); } } 

App trait是创build可执行的scala程序的一种便捷方式。 与主要方法的区别在于(除了明显的语法差异之外),应用特征使用延迟初始化特征。

从2.9的发行说明(请参阅http://www.scala-lang.org/old/node/9483

inheritanceApp trait的对象使用Scala 2.9的延迟初始化特性来执行整个主体,作为inheritance的主要方法的一部分。

Appscheme的另一个新function是命令行参数现在可以通过参数值(从特征Appinheritance)访问,

这两种情况在scala脚本上是不一样的。

object extends App没有被“ scala MyObject.scala ”命令执行,但包含主要方法的对象被“ scala MyObject.scala ”命令执行。 这被描述为scala寻找与主要方法脚本的对象。

在使用Eclipse的REPL或scala workseet时,需要明确调用MyObject.main(Array[String]())

这个简单的提示对像我这样的初学者很有帮助。