Одна зручна особливість Scala полягає в тому lazy val, коли оцінка valзатримки затримується до необхідності (при першому доступі).
Звичайно, lazy valобов'язково мають бути деякі накладні витрати - десь Scala повинен відслідковувати, чи значення вже було оцінено, і оцінку потрібно синхронізувати, тому що кілька потоків можуть намагатися отримати доступ до цього значення одночасно.
Яка саме вартість lazy val- чи є прихований булевий прапор, пов’язаний з a lazy valдля відстеження, якщо він був оцінений чи ні, що саме синхронізовано і чи є ще витрати?
Крім того, припустимо, що я роблю це:
class Something {
lazy val (x, y) = { ... }
}
Це те ж саме, що мати два окремих lazy vals xі yчи я отримую накладні витрати лише один раз для пари (x, y)?
bitmap$0поле є непостійним у поточній реалізації (2.8).