目录

懒值

懒值,等到值被使用时才初始化,对开销较大的初始化语句或者对于会造成内存溢出的操作特别有用。迭代器,流 ,懒视图是都“懒”的操作

lazy  val l = 1/0
print("111")   
print(l)  执行这一句才会报错

流(懒值)

def f(n:Int):Stream[Int] = n #:: f(n+1)


var a= f(0)
println(a)
println(a.tail)
println(a.take(3).force)(强制去取个值)

结果:
Stream(0, ?)
Stream(1, ?)
Stream(0, 1, 2)

懒视图

通过view方法创建一个懒散视图,当调用v(1)时才对1计算,其他值不计算,计算的值不会缓存,如果再次调用v(1)则再次计算

也可以调用用force方法强制计算(失去懒作用)

var v= (0 to 100).view.map(_+1)
println(v(1))