操作步骤:
(1)打开Windows命令控制台,输入scala并按【Enter】键,进人Scala解释器。
(2)用val声明一个变量并赋值。输入val name-"shf"并按【Enter】键,可以看到值shf马上就赋给了变量name。
scala> val name="shf"
name: String = shr
(3)重复上一步的操作,但是这次使用lazy 修饰变量。输人 lazy val name="scala"并按【Enter]键,可以看到值scala并没有马上赋给变量name,而是显示<lazy>。
scala> lazy val name="scala"
hame: String= <lazy>
(4)用lazy 修饰的变量,只有在使用时才会被真正赋值,此处调用一下name。输入name 并按【E
键,可以看到值scala已赋给变量。
scala> name
res7: String = scala
(5)用var 声明的变量能否用lazy 修饰。输入 lazy var name="df"并按【Enter】键,结果报错,提示lazy不可与var合用,只能用来修饰用val声明的变量。
scala> lazy var name="df"
console>:1: error: lazy not allowed here. Only vals can be lazy
lazy var name="df"
这就是一个惰性求值的简单案例。所谓惰性求值,其实就是说在声明变量时,并不会给变量分配内存空间,只有在使用变量时才会分配。