Что нужно знать про late и late final во Flutter/Dart?
Что хотят услышать интервьюеры:
Коротко: late откладывает инициализацию non-nullable переменной, а late final разрешает присвоить значение ровно один раз позже объявления.
Ответ:
Где применяется:
- полезно для зависимостей, которые появляются в initState
- при чтении до записи будет LateInitializationError
- late не заменяет nullable-модель данных
Пример:
late final StreamSubscription sub;
@override void initState() {
super.initState();
sub = stream.listen(handle);
} Как отвечать на собеседовании: объясните назначение, границы применения и почему это лучше альтернативы в конкретном сценарии. Типичная ошибка: читать late поле до инициализации.