我有一个非常简单的方法定义与嵌套的递归函数:
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中,一切正常