我想知道按值传递但懒惰的变量与在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"