使用语句外部对象运行Scala脚本

时间:2017-02-20 02:17:28

标签: scala

myfile.scala的内容如下:

//  println("print this line")

object myObj  {
        def main(args: Array[String]): Unit = {
                println("Hello, world!")
        }
}

如果我运行:scala myfile.scala,则会打印:Hello, world

如果我取消注释第一个println stmt,并运行:scala myfile.scala, 它只打印:print this line, 并且不打印hello-world stmt。

为什么会这样?我觉得很困惑。我试图搜索档案,但找不到任何答案。

1 个答案:

答案 0 :(得分:4)

当scala命令在文件中看到顶级语句(不在类或对象中)时,它会将文件作为脚本运行,从第一行开始向下移动。你永远不会调用main方法,因为你从不调用它,只需定义它。当您的文件不包含任何顶级语句但它包含主对象时,它将运行main方法作为程序的入口点。