Одинаковые имена переменных в Dart
Если во внутренней области снова объявить переменную с тем же именем, что снаружи, внутри действует только новая. Внешнее имя на этом участке как бы скрыто.
Снаружи блока val равна 1, внутри
блока другое объявление с тем же именем -
2. На экран из блока попадет 2,
после блока снова 1:
final val = 1;
if (true) {
final val = 2;
print(val);
}
print(val);
То же между функцией на уровне файла и
локальной переменной в main. Из main
на экран попадет 10, из show -
20:
final val = 20;
void show() {
print(val);
}
void main() {
final val = 10;
print(val);
show();
}
Изменение внутренней переменной не меняет
внешнюю. После выхода из блока снова видна
старая. На экран попадут 100 и 5:
var score = 5;
if (true) {
var score = 100;
print(score);
}
print(score);
Определите, что выведет программа:
final tag = "a";
if (true) {
final tag = "b";
print(tag);
}
print(tag);
Определите, что выведет программа:
final level = 1;
void main() {
final level = 2;
print(level);
}