Область блока в Kotlin
Пара фигурных скобок образует блок. Переменная, объявленная внутри блока, видна только между этими скобками.
Имя token объявлено внутри блока.
Сразу после закрывающей скобки программа
не соберется:
fun main() {
if (true) {
val token = "abc"
println(token)
}
println(token) // программа не собирается
}
Вложенный блок может читать переменную
внешнего блока той же функции. На экран
попадут 1 и 2:
fun main() {
val outer = 1
if (true) {
val inner = 2
println(outer)
println(inner)
}
}
Имя из внутреннего блока снаружи не видно. Программа снова не соберется:
fun main() {
if (true) {
val inner = 2
}
println(inner) // программа не собирается
}
Код не собирается. Исправьте его так,
чтобы на экран попала строка "ok":
fun main() {
if (true) {
val status = "ok"
}
println(status)
}
Определите, соберется ли программа:
fun main() {
val a = 1
if (true) {
val b = 2
println(a + b)
}
println(b)
}