Какое снижение производительности при использовании lazy val в scala, но INSIDE a def

Я знаю, что внутри класса, использующего lazy val, используется какой-то тип двойной блокировки. Но как насчет определения функции? Используется ли тот же шаблон?

Например:

class Sample {
  def computation(): Something = {}

  def fn(compute: Boolean, default: Something): Something = {
    lazy val c = computation()

    if (compute) c*c else default
  }
}
7
задан Cœur 19 August 2017 в 05:06
поделиться