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



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

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


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

正如错误所说:

此行处有多个标记 - 递归值事实与尾部Rec 需要类型 - 找到的隐式转换:i => int2bigIn

换句话说,您需要在val中添加类型签名:

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

最新更新