【问题标题】:Scala recursive function values definitionScala递归函数值定义
【发布时间】:2014-07-11 11:20:14
【问题描述】:

这个关于定义递归函数值的非编译代码,

val factorial = (n:Int) => if (n < 1) 1 else n * factorial(n-1)

产生错误信息,例如

recursive value factorial needs type

如何声明返回类型?

【问题讨论】:

    标签: function scala recursion


    【解决方案1】:
    val factorial: Int => Int = (n) => if (n<1) 1 else n*factorial(n-1)
    

    【讨论】:

      【解决方案2】:

      像这样

      val factorial: Int => Int = (n:Int) => if (n<1) 1 else n*factorial(n-1)
      

      其实我会这样写:

      def factorial(n: Int): Int = if (n < 1) 1 else n * factorial(n-1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多