问题描述
@main def main11 =
println("main11 printed something")
object Main10 extends App {
println("Main10 Executed !!".toupperCase())
main11
}
object Main2 {
def main(args: Array[String]): Unit = {
println("Main2 can run too !!".toupperCase())
Main10
}
}
它编译得很好,我可以在 IDE 中运行这些 main11
Main2
Main10
中的任何一个。
这是什么原因?
例如
main11
输出:
main11 printed something
Main2
输出:
MAIN2 CAN RUN TOO !!
MAIN10 EXECUTED !!
main11 printed something
通常在其他语言中,我会在 1 个文件中看到 1 个主类。
解决方法
Scala 有惯用的概念,需要在同一个文件中包含多个类/对象/特征,例如
- 伴随对象
- 代数数据类型
然而,一般来说,在同一个文件中定义任意多个类/对象/特征并不是最佳实践,除非它们紧密相关。您的对象碰巧每个都有一个 main
方法这一事实并不相关,因为它只是被视为常规方法。