2016-11-11 4 views
1

だからこの特性ケーキパターン

trait SomeTrait{ 
    val x:Int 
    val y:Int 
    val z=x*y 
} 

そして、この実装

class SomeImpl extends SomeTrait{ 
    val x=5 
    val y=2 
    println(z) //prints 0 why? 
} 

なぜそれが印刷しない0を取りますか?どのように私はそれを避けることができます!高価な計算のような場合には、zをvalとしたい。

答えて

3
+0

上のスポットを参照して、詳細な説明についてはどちらかlazy valdef

trait SomeTrait{ val x:Int val y:Int lazy val z=x*y } 

としてマークする必要があります!ありがとう! – caeus