我想通過模式匹配遞歸遍歷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'註釋以確保它不會堆棧。它不會在這種情況下,但它總是一個很好的做法。 –