値渡しされる変数の違いを知りたいのですが、怠惰であり、Scala で変数を名前で渡します。
見せようとしてこの例を書きましたが、そうではありません。どうすればよいですか?
def callByValue(x : Unit) = {
x
x
}
def callByName(x : => Unit) = {
x
x
}
lazy val j = {println("initializing lazy"); 0}
var i = {println("initializing"); 0}
callByName(i = i + 1)
print(i + "\n") // "5"
callByValue(j)
print(j + "\n") // "1"