0

String 型の lazy val があるとします。

    クラス LazyVals {

     lazy val message = "私は怠惰です + " + System.currentTimeMillis().toString    

     def changeLazy = { message + "Not!!" }
    }

changeLazy はメッセージの「一度だけ評価する」性質を変更しますか?

4

1 に答える 1

3

計算するコードmessageは一度だけ評価されます。この動作を変更することはできません。

currentTimeMillis一度だけ呼び出されます。連結message + " Not!!"は各changeLazy呼び出しで実行され、同じ結果になりますが、 によって最適化できますjvm

于 2013-08-08T09:14:48.687 に答える