当我使用 scala App特征时,我无法让 println 工作。
这个简单的示例按预期打印,
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
但是一旦我介绍了它没有的特征,
object HelloWorld extends App {
println("Hello, world!")
}
我没有收到任何错误,但没有任何内容打印到控制台。
您是否先编译它(运行 scalac HelloWorld.scala)?看到这个评论:http ://www.scala-lang.org/node/9483#comment-40627
编辑添加更多解释:第一个版本实际上是编译的。没有显式 main 方法的 Scala 文件未编译为脚本运行。这意味着对于您的第二个版本,文件中的命令按顺序运行,就好像它们已被输入到解释器中一样——因此,对象 HelloWorld 被创建,但没有对其调用任何方法。这里有更多关于 Scala 作为脚本语言的信息(滚动到第 5 步):http ://www.artima.com/scalazine/articles/steps.html
添加一行
object HelloWorld extends App {
/* code */
}
HelloWorld.main(args)
在文件的末尾。
该类定义了方法,但也需要调用它。
根据 http://www.scala-lang.org/api/current/scala/App.html
你想做
object Main extends App {
Console.println("Hello World: " + (args mkString ", "))
}