scala 特性之一 lazy关键字

来源:互联网 发布:国际版淘宝 编辑:程序博客网 时间:2024/05/22 15:06

惰性计算

     惰性 求值 特别用于 函数式编程语言 中。在使用延迟求值的时候,表达式不在它被绑定到变量之后就立即求值,而是在该值被取用的时候求值  除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型。

    Scala中通过lazy关键字来定义惰性变量,惰性变量只能是不可变变量。例如下面,只有在调用惰性变量b的toString方法的时候,才会去实例化b这个变量。可以看到“Test”是先打印出来的。

?
1
2
3
4
5
6
7
8
classBook(name:String){
    println("new book"+name)
    overridedef toString() ="《"+name+"》"
}
 
lazyval b =new Book("Java")
println("Test")
println(b.toString)
?
1
2
3
Test
newbookJava
《Java》
0 0