我尝试使用模式匹配在Scala中递归迭代一个列表。我不能使用任何列表函数,也不能使用while/for循环。我的任务是遍历列表,并在其元素为“4”时将其删除。作为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
注解,以确保它不会消耗堆栈。在这种情况下,它不会,但这总是一个好习惯。 - Alexey Raga