Scala 允许定义惰性值
lazy val maybeUnusedValue = someCostlyInitialization
wheresomeCostlyInitialization
仅在第一次使用时评估maybeUnusedValue
. 也就是说,它最多被评估一次,如果maybeUnusedValue
从不使用,它也永远不会被评估。
这是线程安全的吗?这对性能有何影响?如果这是线程安全的,它必须使用某种同步/以某种方式使用 Java volatile。不幸的是,Scala 语言规范对此只字未提。