介绍
当函数返回值被声明为 lazy 时,如下:
lazy val res = sum(1, 2)
不会立即调用 sum() 函数,会被推迟,在第一次使用 res 时,才会调用 sum() 函数
案例
def main(args: Array[String]): Unit = {
lazy val res = sum(1, 2) //不会立即调用 sum() 函数
println("11111")
println("22222 res=" + res) //第一次使用 res 时,才会调用 sum() 函数
println("33333 res=" + res) //以后使用 res 时,不会调用 sum() 函数
}
def sum(a: Int, b: Int): Int = {
println("44444 sum 被执行。。。")
return a + b
}
执行结果如下:
11111
44444 sum 被执行。。。
22222 res=3
33333 res=3