Scalaでは、lazyキーワードを使用して、遅延評価させることができます。
例えば、値を使用するときまで計算を遅らせたい時などに使用できます。
lazyサンプル
def main(arts: Array[String]) : Unit = {
val ls = new LazySample(2, 3) // クラス初期化時には計算されない
println(ls.val3) // 初回参照のため、計算が実施される
println(ls.val3) // 計算済みのため、値が返されるだけ
}
class LazySample(val val1: Int, val val2: Int) {
lazy val val3: Int = {
println("val3計算実施")
val1 * val2
}
}
// 【出力結果】
// val3計算実施
// 6
// 6