Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
const - compile-time константы
const создает compile-time константы, которые вычисляются при компиляции и встраиваются в бинарник.
Как работает
Compile-time pooling:
const str1 = "Flutter";
const str2 = "Flutter";
print(identical(str1, str2)); // true - одна копия в памяти
Const виджеты пропускают rebuild:
return const Scaffold(
appBar: AppBar(title: Text("Title")),
);
Когда родитель перестраивается, const виджеты не пересоздаются.
Правила
- Все параметры must be const
- Вычисляется при compile-time
- Нет runtime операций (DateTime.now() - error)
Примеры:
const MAX = 100; // OK
const result = 100 + 50; // OK - compile-time
const time = DateTime.now(); // Error - runtime
const list = [1, 2, 3]; // OK
const obj = User("John"); // OK if const constructor
const vs final
final - runtime, можно менять элементы:
final list = [1, 2, 3];
list[0] = 10; // OK
const - compile-time, immutable:
const list = [1, 2, 3];
list[0] = 10; // Error
Best Practice
- Используй const везде где возможно
- Const конструкторы для всех классов
- Const виджеты для оптимизации
const экономит память и ускоряет приложение.