scala 支持变量延迟加载, 即在第一次真正使用时, 才会初始化变量的值
使用 lazy val 关键字修饰变量
lazy val abc = initAbc();
下面举例, 如果不使用 lazy
修饰变量, 那么期望先打印 test
再打印 init c
而使用 lazy
修饰变量, 那么会先打印 test
再打印 init c
@Test
def testVar() = {
// lazy val 惰性求值
lazy val c = initC()
println("test")
println(c)
}
def initC() = {
println("init c...")
30
}