scala教程:lazy惰性加载(懒加载)

介绍

当函数返回值被声明为 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

原文出处:/show_1IX1BuvNiFo6.html