SCALA模式与LIST中的递归匹配

时间:2018-07-06 19:02:02

标签: scala

在递归函数中的每个函数调用之后如何打印列表的元素?

 def multiply(list: List[Int]): Unit =list match {
        case Nil => 1
        case n :: rest => n * multiply(rest)
    }

每次调用一次split(),我想查看它要处理的列表元素。

1 个答案:

答案 0 :(得分:1)

您的方法应返回Int而不是Unit。要迭代地打印元素,只需在println下插入case head :: tail

def multiply(list: List[Int]): Int = list match {
    case Nil => 1
    case n :: rest =>
      println(n)
      n * multiply(rest)
  }

multiply(List(1,2,3,4))
// 1
// 2
// 3
// 4
// res1: Int = 24