小编Sid*_*tta的帖子

无法在Scala中的Tail Recursion中编写方法

我有一个功能:

@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中以及如何使这个方法尾递归?

scala tail-recursion

0
推荐指数
1
解决办法
165
查看次数

标签 统计

scala ×1

tail-recursion ×1