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。
为什么会这样?我觉得很困惑。我试图搜索档案,但找不到任何答案。
答案 0 :(得分:4)
当scala命令在文件中看到顶级语句(不在类或对象中)时,它会将文件作为脚本运行,从第一行开始向下移动。你永远不会调用main方法,因为你从不调用它,只需定义它。当您的文件不包含任何顶级语句但它包含主对象时,它将运行main方法作为程序的入口点。