Я хотел бы знать разницу между переменной, передаваемой по значению, но ленивой, и передачей переменной по имени в 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"