将递归函数分配给scala中的变量

时间:2013-10-22 12:12:59

标签: scala

下面的代码给出了我的错误 此行有多个标记      - 递归值factWithTailRec需要类型      - 找到隐式转换:i => int2bigIn

@tailrec
 val factWithTailRec = (i:Int, acc:BigInt) =>   if(i == 0) 1  else factWithTailRec(i-1, i * acc)


请可以建议我如何防止它。 要求是将val分配给递归函数

1 个答案:

答案 0 :(得分:5)

正如错误所说:

  

此行的多个标记 - 递归值factWithTailRec   需要输入 - 找到隐式转化:i => int2bigIn

换句话说,您需要在val

中添加类型签名
val factWithTailRec: (Int, BigInt) => BigInt = (i:Int, acc:BigInt) =>   if(i == 0) 1  else factWithTailRec(i-1, i * acc)