Я начинаю scala и пытаюсь понять, как val работает в Scala. Я читал, что валы не могут быть изменены. Когда я делаю следующее:Scala: объявление val внутри цикла цикла, если условие
for(line <- Source.fromFile(args(0)).getLines()) {
val currentLine = line
println(currentLine)
}
CurrentLine обновляется на каждой итерации, в то время как я ожидаю, что это будет инициализирован с первой линией и удерживать ее до конца, или, по крайней мере, дать ошибку повторной инициализации какой-то , Почему это так? Является ли val создан и уничтожен на каждой итерации? Мой второй вопрос: я хотел бы использовать x вне, если в следующем коде.
if(some condition is satisfied) val x = 2 else val x = 3
На данный момент я получаю сообщение об ошибке «Незаконный старт простого выражения». Есть ли способ использовать x снаружи, если?
Чтобы быть ясным, разница между 'val' и' var' заключается в том, что 'val' не может быть переназначен. –
Помните, что 'val currentLine = line' не совпадает с' currentLine = line' в изоляции. Только последний пытается присвоить новое значение существующему значению. – KChaloux