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

Abh*_*oor 0 scala

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

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


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

DJG*_*DJG 5

正如错误所说:

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

换句话说,您需要为以下内容添加类型签名val:

val factWithTailRec: (Int, BigInt) => BigInt = (i:Int, acc:BigInt) =>   if(i == 0) 1  else factWithTailRec(i-1, i * acc)
Run Code Online (Sandbox Code Playgroud)