Scalaは、怠惰なvarsを作成することを許可していません。それは意味をなさない。scalaで怠惰なvarを作る
しかし、私は同様の機能を使いたいユースケースにぶつかってきました。私は怠惰な変数ホルダーが必要です。時間のかかるアルゴリズムによって計算されるべき値が割り当てられてもよい。しかし、後に別の値に再割り当てされる可能性があり、最初の値の計算をまったく呼び出さないことをお勧めします。コードのこの作品のみCALC2()を呼び出す必要があり
lazy var value : Int = _
val calc1 :() => Int = ... // some calculation
val calc2 :() => Int = ... // other calculation
value = calc1
value = calc2
val result : Int = value + 1
いくつかの魔法のVARの定義があると仮定し
例、私は暗黙の変換として、このコンテナを書くことができますどのようにアイデアを持っている
をCALC1ありません特別なコンテナクラス。私はこの作品
1番目のオプション – paradigmatic
のためにこれは、それは怠惰の「キャッシング」の性質を捕捉しないため、正しい解決策ではありません。私。 lv.valueを評価するたびに、関数が再実行されます(この例では、何度も繰り返し印刷されます)。 –