在使用hibernate得时候是有懒加载得,就是先生成一个代理对象,但是此时是没有真正去查询数据得,只有当用到该数据得时候才会去真正得查询获取数据,在scala中得惰性函数就与之相似,也是使用lazy来修饰 当函数返回值被声明为lazy时,函数得执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数
举例
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来修饰,那么变量值分配也会被延迟到变量被使用时