我想通过模式匹配递归遍历Scala中的列表。我不能使用任何列表函数,或者使用/ for循环。我需要做的是遍历列表,并删除一个元素,如果它匹配成'4'。我是新来的斯卡拉,我无法在教科书中找到答案,也没有在Google上找到答案。其他人都使用过滤方法或其他列表方法。递归遍历一个Scala列表
这里就是我试图做的(这是错误的)
def removeFours(lst: List[Int]): List[Int] = {
val newLst = lst
lst match {
case Nil => Nil
case a if a == 4 => newLst -= 0
case n => removeFours(newLst)
}
newLst
}
向'loop'函数添加'@ tailrec'注释以确保它不会堆栈。它不会在这种情况下,但它总是一个很好的做法。 –