小编CJ *_*obb的帖子

嵌套递归函数的Scala前向引用

我有一个非常简单的方法定义与嵌套的递归函数:

def bar(arr : Array[Int]) : Int = {
  val foo : Int => Int = (i: Int) => if(i == 0) 0 else i + foo(i-1)
  foo(3)
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

<console>:36: error: forward reference extends over definition of value foo
     val foo : Int => Int = (i: Int) => if(i == 0) 0 else i + foo(i-1)
                                                              ^
Run Code Online (Sandbox Code Playgroud)

如果我只是把val foo:... = ...行单独放置,而不是嵌套在def中,一切正常

recursion scala forward-reference

3
推荐指数
1
解决办法
287
查看次数

标签 统计

forward-reference ×1

recursion ×1

scala ×1