6

我正在尝试在 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] 类型。为什么它被识别为类型单元?

4

1 回答 1

6

reversed在 for 循环之后添加。在 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)))
  }
}
于 2012-10-31T22:40:22.240 回答