当我使用scala App特征时,我无法使println工作。
这个简单的例子按预期打印,
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
但是,一旦我介绍了它没有的特性,
object HelloWorld extends App {
println("Hello, world!")
}
我没有错误,但没有任何内容打印到控制台。
答案 0 :(得分:10)
您是否先编译它(运行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
答案 1 :(得分:5)
添加一行
object HelloWorld extends App {
/* code */
}
HelloWorld.main(args)
在您的文件末尾。
Class定义了方法,但也需要调用它。
答案 2 :(得分:-1)
根据 http://www.scala-lang.org/api/current/scala/App.html
你想做什么
object Main extends App {
Console.println("Hello World: " + (args mkString ", "))
}