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