下面的代码给了我错误此行处有多个标记 - 递归值事实与尾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)