我有一个功能:
@tailrec
def sampleTailRec(list: List[Int]) : List[Int] = {
if(list.nonEmpty) {
val value: Int = list.head * 2
List(value) ++ sampleTailRec(list.drop(1))
} else {
List()
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下编译错误
无法优化@tailrec注释方法sampleTailRec:它包含一个不在尾部位置的递归调用List(value)++ sampleTailRec(list.drop(1))
我曾尝试在Tail Recursion中编写代码
无法理解为什么我的代码不在Tail Recursion中以及如何使这个方法尾递归?