计算列表的总和:但是这个方法不能注释为@tailrec?
def rec(a:List[Int]): Int ={
def rechelper(a:List[Int],n:Int,res:Int) :Int={
if (n==a.length) res
else rechelper(a,n+1,res+a(n))
}
rechelper(a,0,0)
}
答案 0 :(得分:2)
你不能这样做,因为rec方法不是尾递归。 rechelper是尾递归方法,所以你可以这样做。
scala> def rec(a:List[Int]): Int ={
| @tailrec
| def rechelper(a:List[Int],n:Int,res:Int) :Int={
| if (n==a.length) res
| else rechelper(a,n+1,res+a(n))
| }
| rechelper(a,0,0)
| }
rec: (a: List[Int])Int
scala>