在IDEA-Scala中运行不同的对象
我在IDEA中写了三个不同的对象,分别标记为PartA、PartB和PartC。但是,当我尝试运行这些对象中的任何一个时,唯一给我运行选项的是PartB。当我右键单击PartA和PartC的代码时,我没有运行它们的选项。只有PartB有运行的选项。这里发生了什么,我如何修复它,以便运行我编写的不同对象 编辑:对不起,第一次在这里发布问题。这是我写的代码在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
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,如果你不熟悉,请考虑接受你的答案: