12
下都意味着創造整數流:什麼時候需要偷懶?
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
,但不是外部?