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()...
()
*/