lazy val words = scala.io.Source.fromFile("/usr/share/dict/words").mkString
如果程序不访问words,那么文件就不会被打开。
懒值对开销较大的初始化语句非常有用。
可以把懒值理解介于val和def的中间状态。
比较下面两段代码:
object TestFunction2 {
def main(args: Array[String]): Unit = {
val res = sum(10, 20)
println("*************")
println("res = " + res)
}
def sum(i: Int, i1: Int):Int = {
println("sum()执行了...")
return i + i1
}
}
输出:
sum()执行了...
&&&&&&&&&&&&&&&&&&
res = 30
object TestFunction2 {
def main(args: Array[String]): Unit = {
lazy val res = sum(10, 20)
println("&&&&&&&&&&&&&&&&&&")
println("res = " + res)
}
def sum(i: Int, i1: Int):Int = {
println("sum()执行了...")
return i + i1
}
}
输出:
&&&&&&&&&&&&&&&&&&
sum()执行了...
res = 30