Una característica útil de Scala es lazy val, donde la evaluación de un valse retrasa hasta que sea necesario (en el primer acceso).
Por supuesto, un lazy valdebe tener algunos gastos generales: en algún lugar, Scala debe realizar un seguimiento de si el valor ya se ha evaluado y si la evaluación debe estar sincronizada, ya que varios subprocesos pueden intentar acceder al valor por primera vez al mismo tiempo.
¿Cuál es exactamente el costo de un lazy val? ¿Hay un indicador booleano oculto asociado con un lazy valseguimiento si se ha evaluado o no, qué se sincroniza exactamente y hay más costos?
Además, supongamos que hago esto:
class Something {
lazy val (x, y) = { ... }
}
Es esto lo mismo que tener dos separadas lazy vals xy yo qué tengo la cabeza una sola vez, para el par (x, y)?
bitmap$0campo es volátil en la implementación actual (2.8).