【问题标题】:assigning recursive function to a variable in scala将递归函数分配给scala中的变量
【发布时间】:2013-10-22 12:12:59
【问题描述】:

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

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


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

【问题讨论】:

    标签: scala


    【解决方案1】:

    正如错误所说:

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

    也就是说,你需要给val添加一个类型签名:

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

    【讨论】:

    • 那行得通,感谢帮助我有点好奇,我可以将咖喱函数传递给 val 吗?如下所示,虽然它显示错误。 val factWithTailRec: (BigInt)(BigInt) => BigInt = (i:BigInt)(acc:BigInt=1) => if(i == 0) 1 else factWithTailRec(i-1, i * acc)
    猜你喜欢
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多