【发布时间】:2011-10-21 05:22:56
【问题描述】:
以下内容均用于创建整数流:
val s: Stream[Int] = 1 #:: s.map(_ + 1)
def makeStream = {
val s: Stream[Int] = 1 #:: s.map(_ + 1)
s
}
第一个很好;但是makeStream 方法不会编译:
error: forward reference extends over definition of value s
val s: Stream[Int] = 1 #:: s.map(_ + 1)
^
只有当我们将s 设为lazy val 时它才会编译。为什么方法里面需要lazy val,外面不行?
【问题讨论】:
标签: scala stream lazy-evaluation