Scala的一个方便的特性是lazy val,在此情况下,对val延迟到必要时(在第一次访问时)。
lazy val
val
当然,Scala必须跟踪lazy val值是否已经计算,并且计算必须同步,因为多个线程可能第一次同时访问值。
具体的时间cost是多少?什么是同步的,是否还有更多的cost?
此外,假设我这样做:
class Something { lazy val (x, y) = { ... } }
这和有两个单独的lazy val x和y,对(x, y)有什么区别?
lazy val x
y
(x, y)有什么区别
相似问题