在IDEA-Scala中运行不同的对象

在IDEA-Scala中运行不同的对象,scala,object,intellij-idea,Scala,Object,Intellij Idea,我在IDEA中写了三个不同的对象,分别标记为PartA、PartB和PartC。但是,当我尝试运行这些对象中的任何一个时,唯一给我运行选项的是PartB。当我右键单击PartA和PartC的代码时,我没有运行它们的选项。只有PartB有运行的选项。这里发生了什么,我如何修复它,以便运行我编写的不同对象 编辑:对不起,第一次在这里发布问题。这是我写的代码 object PartB extends App { def easter(Y:Int): Int = { va

我在IDEA中写了三个不同的对象,分别标记为PartA、PartB和PartC。但是,当我尝试运行这些对象中的任何一个时,唯一给我运行选项的是PartB。当我右键单击PartA和PartC的代码时,我没有运行它们的选项。只有PartB有运行的选项。这里发生了什么,我如何修复它,以便运行我编写的不同对象

编辑:对不起,第一次在这里发布问题。这是我写的代码

    object PartB extends App {
    def easter(Y:Int): Int = {
        val N = Y - 1900
        val A = N - (N/19) * 19
        val B = (7 * A + 1) / 19
        val C = 11 * A + 4 - B
        val M = C - (C / 29) * 29
        val Q = N / 4
        val S = N + Q + 31 - M
        val W = S - (S / 7) * 7
        val DATE = 25 - M - W
      return DATE
    }

  println("Enter a year: ")
    val year = scala.io.StdIn.readInt()

  val date = easter(year)
  var easter_day : String = ""

  if (date == 0) {
    easter_day = "March, 31"
  } else if (date < 0) {
    easter_day = "March, " + (31 + year)
  } else {
    easter_day = "April, " + date
  }

  println("In " + year + ", Easter is on " + easter_day + ".")
}
////////////////////////////////////////////////////////////////////////////////

object PartC {
  def ack(m:Int, n:Int) : Int = {
    if (m == 0) {
      return n + 1
    } else if (n == 0) {
      return ack(m - 1, 1)
    } else {
      return ack(m - 1, ack(m, n - 1))
    }
  }

  println("Enter a value for m: ")
    val m = scala.io.StdIn.readInt()

  println("Enter a value for n: ")
    val n = scala.io.StdIn.readInt()

  println(ack(m, n))
}
对象PartB扩展应用程序{
定义复活节(Y:Int):Int={
val N=Y-1900
val A=N-(N/19)*19
val B=(7*A+1)/19
val C=11*A+4-B
val M=C-(C/29)*29
val Q=N/4
val S=N+Q+31-M
val W=S-(S/7)*7
val日期=25-M-W
返回日期
}
println(“输入年份:”)
val year=scala.io.StdIn.readInt()
val日期=复活节(年)
var复活节:String=“”
如果(日期==0){
复活节=“3月31日”
}否则如果(日期<0){
复活节(31岁以上)
}否则{
复活节日=“四月”+日期
}
println(“在“+年+”,复活节在“+复活节+”)
}
////////////////////////////////////////////////////////////////////////////////
对象部分C{
def确认(m:Int,n:Int):Int={
如果(m==0){
返回n+1
}else如果(n==0){
返回确认(m-1,1)
}否则{
返回应答(m-1,应答(m,n-1))
}
}
println(“输入m:”的值)
val m=scala.io.StdIn.readInt()
println(“输入n:”的值)
val n=scala.io.StdIn.readInt()
println(ack(m,n))
}

PartB扩展了App
,但是
PartC
没有。大概
PartA
也没有


所以
PartB
定义了一个
main
方法。

你能粘贴代码吗?此外,最好定义
main
方法,而不是直接将代码放入对象中。也许这会有帮助?添加一些代码总是更好的。添加一个main解决了这个问题,谢谢!我仍然习惯Scala,所以我认为我不需要像python这样的主函数。我个人更喜欢“扩展应用程序”解决方案,但我想这是一个品味问题@JayTucker,如果你不熟悉,请考虑接受你的答案: