Lazy关键字

package day02


/**
  * lazy关键字
*Scala中用lazy定义的变量叫做惰性变量,会实现延迟加载
* 惰性变量只能是不可变变量,且只有在调用惰性变量时,才会去实例化这个变量
 */
class ScalaLazyDemo {

}

object ScalaLazyDemo1 {
  def init(): Unit = {
    println("call init()")
  }
  def main(args: Array[String]): Unit = {
    val property = init()  //没有用lzay修饰
    println("after init()")
    println(property)
  }
}

object ScalaLazyDemo2 {
  def init(): Unit = {
    println("call init()")
  }

  def main(args: Array[String]): Unit = {
    lazy val property = init()  //使用lazy修饰
    println("after init()")
    println(property)
  }
}

你可能感兴趣的:(Lazy关键字)