【发布时间】:2015-10-24 10:19:07
【问题描述】:
我有一个带有嵌套递归函数的非常简单的方法定义:
def bar(arr : Array[Int]) : Int = {
val foo : Int => Int = (i: Int) => if(i == 0) 0 else i + foo(i-1)
foo(3)
}
但我收到此错误:
<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)
^
如果我只是单独放置 val foo: ... = ... 行,而不是嵌套在 def 中,那么一切正常
【问题讨论】:
-
你为什么不把它设为def?
标签: scala recursion forward-reference