我正在尝试在Scala中编写一个反向方法,它接受一个列表并返回相反的方法。我有:
object Reverse {
def reverseList(list: List[Int]): List[Int] = {
var reversed: List[Int] = List()
for (i <- list) {
reversed = i :: reversed
}
}
def main(args: Array[String]) {
println(reverseList(List(1,2,3,4)))
}
}
但是当我尝试编译时,我得到了:
example.scala:4: error: type mismatch;
found : Unit
required: List[Int]
for (val i <- list) {
^
List“list”被声明为List [Int]类型。为什么它被识别为单位?
答案 0 :(得分:5)
在for循环后添加reversed
。在Scala中,函数的最后一行是返回值。 for (i <- list){...}
会返回Unit
。
object Reverse {
def reverseList(list: List[Int]): List[Int] = {
var reversed: List[Int] = List()
for (i <- list) {
reversed = i :: reversed
}
reversed
}
def main(args: Array[String]) {
println(reverseList(List(1,2,3,4)))
}
}