> В чем разница final и const в Dart (Flutter)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: ТН-Групп

Стек: Flutter

> Пример ответа

В Dart final и const оба используются для объявления неизменяемых переменных, но ключевое отличие - время инициализации.

  • final - переменная инициализируется один раз во время выполнения (runtime). Значение может быть вычислено динамически, например, через вызов функции или получение текущего времени. После присвоения изменить его нельзя.
  • const - переменная должна быть константой времени компиляции (compile-time constant). Значение должно быть известно до запуска программы, например, литерал 42, 'hello' или результат простых операций над другими константами. const также можно использовать для создания неизменяемых объектов (например, const SizedBox).

Пример:

final now = DateTime.now(); // Ок: вычисляется в runtime
const pi = 3.14159;         // Ок: литерал
const invalid = DateTime.now(); // Ошибка: не константа компиляции

В контексте Flutter const часто применяется для виджетов, которые не меняются, чтобы оптимизировать перестроение дерева (Flutter не пересоздаёт const-виджеты). final удобен для данных, которые зависят от внешних условий (например, ответ от сервера).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью