scala的lazy關鍵字

scala裏面的lazy通常是一個關鍵字,多用於放在一個變量的前面,這樣表示這個變量是一個惰性變量spa

package day02

/**
* 在scala中用Lazy定義的變量叫惰性變量,會實現延遲加載,即在編譯的時候並無執行,
* 惰性變量只能是不可變變量,且只有在調用惰性變量時,纔會去實例化這個變量。
*/

object ScalaLazyDemo1 {

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

def main(args: Array[String]): Unit = {
val property = init() //沒有用Lazy修飾
println("after init()")
println(property)
}

}

//執行結果
/*
call init()...
after init()
()
*/

object ScalaLazyDemo2 {

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

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

}
/*
執行結果
after init()
call init()...
()
*/
相關文章
相關標籤/搜索