Jedną z przydatnych funkcji Scali jest to lazy val, że ocena a valjest opóźniona do momentu, gdy będzie to konieczne (przy pierwszym dostępie).
Oczywiście lazy valmusi mieć pewien narzut - gdzieś Scala musi śledzić, czy wartość została już oszacowana, a ocena musi zostać zsynchronizowana, ponieważ wiele wątków może próbować uzyskać dostęp do wartości po raz pierwszy w tym samym czasie.
Jaki dokładnie jest koszt lazy val- czy istnieje ukryta flaga logiczna związana z a, lazy valaby śledzić, czy została oszacowana, czy nie, co dokładnie jest zsynchronizowane i czy są jakieś dodatkowe koszty?
Ponadto załóżmy, że zrobię to:
class Something {
lazy val (x, y) = { ... }
}
Czy to to samo, co posiadanie dwóch oddzielnych lazy valsiatek xi yczy otrzymuję narzut tylko raz, dla pary (x, y)?
bitmap$0pole jest niestabilne w obecnej implementacji (2.8).