Область видимости в Kotlin
Давайте теперь будем смотреть, где видно переменную,
объявленную внутри if. Возьмем условие,
которое всегда истинно:
if (true) {
}
Переменная объявлена внутри скобок. Снаружи этого имени нет, программа не собирается:
if (true) {
val res = "!"
}
println(res) // программа не собирается
Имя, объявленное внутри фигурных скобок, видно
только внутри этих скобок. Это называют
областью видимости. Если переменную объявить
снаружи, она видна и внутри условия, и снаружи.
На экран попадет "!":
var res = ""
if (true) {
res = "!"
}
println(res) // !
В обе ветки можно записать разные значения. Если объявить переменную внутри веток, снаружи ее снова не видно:
val num = 5
if (num >= 0) {
val res = 1
} else {
val res = 2
}
println(res) // программа не собирается
Объявим переменную снаружи условия.
На экран попадет 1:
val test = true
var res = 0
if (test) {
res = 1
} else {
res = 2
}
println(res) // 1
Автор приведенного кода хотел проверить,
достиг ли возраст 18 лет.
Код не запускается. Исправьте ошибку:
val age = 17
if (age >= 18) {
val adult = true
} else {
val adult = false
}
println(adult)