Локальные функции в Dart
Локальная функция пишется внутри тела другой функции. Снаружи этой функции ее имя не видно, зато внутри можно обращаться к переменным внешней функции.
В main объявлена printLine.
Вызвать ее можно только из main.
На экран попадет строка "hi":
void main() {
void printLine() {
print("hi");
}
printLine();
}
Локальная функция читает переменные main.
На экран попадет 4:
void main() {
final width = 4;
void showWidth() {
print(width);
}
showWidth();
}
С уровня файла локальную функцию вызвать нельзя. Программа не соберется:
void main() {
void innerTask() {
print("done");
}
innerTask();
}
void runApp() {
innerTask(); // программа не собирается
}
Определите, что выведет программа:
void main() {
final city = "rome";
void showCity() {
print(city);
}
showCity();
}
Определите, соберется ли программа:
void main() {
void helper() {
print(1);
}
helper();
}
void start() {
helper();
}