0%

scala惰性函数

scala惰性函数

在使用hibernate的时候是有懒加载的,就是先生成一个代理对象,但是此时是没有真正去查询数据的,只有当用到该数据的时候才会去真正的查询获取数据,在scala中的惰性函数就与之相似,也是使用lazy来修饰
当函数返回值被声明为lazy时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数

举例

1
2
3
4
5
6
7
8
9
10
11
12
13
def main(args: Array[String]): Unit = {
// 声明惰性函数
lazy val sum = add(10,20)
println("-------计算结果------")
// 在使用函数结果的时候才会真正的去执行函数
println(sum)
}

def add(a: Int, b: Int) :Int = {
printf("%d与%d相加",a,a)
println()
return a+b
}

lazy只能修饰val类型的变量,不可以修饰var类型的变量。

如果在声明变量时使用lazy来修饰,那么变量值分配也会被延迟到变量被使用时