hacer una var perezosa en scala

Scala no permite crear vars laze, solo vals perezosos. Tiene sentido.

Pero me he topado con el caso de uso, donde me gustaría tener una capacidad similar. Necesito un titular variable perezoso. Se le puede asignar un valor que debe calcularse mediante un algoritmo que consume mucho tiempo. Pero puede ser reasignado posteriormente a otro valor y no me gustaría llamar en absoluto el primer cálculo de valor.

Ejemplo asumiendo que existe alguna definición var mágica

lazy var value : Int = _
val calc1 : () => Int = ... // some calculation
val calc2 : () => Int = ... // other calculation
value = calc1
value = calc2
val result : Int = value + 1

Este fragmento de código solo debe llamar a calc2 (), no a calc1

Tengo una idea de cómo puedo escribir este contenedor con conversiones implícitas y una clase de contenedor especial. Tengo curiosidad si hay alguna función incorporada de scala que no requiera que escriba código innecesario

Respuestas a la pregunta(5)

Su respuesta a la pregunta