可能重複:
What's the (hidden) cost of lazy val? (Scala)斯卡拉懶惰值:表現懲罰?線程?
Scala的允許其中someCostlyInitialization
僅在第一次使用的maybeUnusedValue
評價懶惰值
lazy val maybeUnusedValue = someCostlyInitialization
的定義。也就是說,最多隻會評估一次,如果從未使用maybeUnusedValue
,它也根本不會評估。
這是線程安全嗎?這有什麼性能影響? 如果這是線程安全的,它必須以某種方式使用某種同步/使用Java volatile。不幸的是,Scala language specification沒有提到這一點。
副本http://stackoverflow.com/questions/3041253/whats-the-hidden-cost-of-lazy-val-scala – 2010-11-04 09:19:41