0
def mayBeTwice(b:Boolean,i: =>Int) = {
val j = i
if (b) j+j else 0
}
def mayBeTwice(b:Boolean,i: =>Int) = {
lazy val j = i
if (b) j+j else 0
}
val x=Stream.mayBeTwice(true,{println("hi");41+1})
上記のコードの実行は同じ結果ですが、これはScalaブックの関数型プログラミングで説明したものではありません。新しいScalaの遅延識別子に変更はありますか?
期待される動作と内容を教えてください。 – Pavel
あなたは 'false'を送るべきです、結果はもはや同じではありません。 –