【发布时间】:2014-01-17 14:06:34
【问题描述】:
为什么我不能在代码块中递归定义变量?
scala> {
| val test: Stream[Int] = 1 #:: test
| }
<console>:9: error: forward reference extends over definition of value test
val test: Stream[Int] = 1 #:: test
^
scala> val test: Stream[Int] = 1 #:: test
test: Stream[Int] = Stream(1, ?)
lazy 关键字解决了这个问题,但我不明白为什么它在没有代码块的情况下工作,但在代码块中抛出编译错误。
【问题讨论】: