Ключевое слово const в Dart используется для создания константных значений, которые определяются во время компиляции и не могут быть изменены в процессе выполнения программы.
Способы использования:
Как модификатор переменной: Применяется для объявления переменной, значение которой является константным во время компиляции.
dart
Как модификатор конструктора: Конструктор, объявленный как const, создает неизменяемые экземпляры класса, если все его поля являются окончательными (final) или константными (const).
dart
Для создания константных коллекций: Применяется для создания списков, наборов и карт, содержимое которых является константным во время компиляции.
dart
В контекстах, где ожидается константное значение: Например, при создании виджетов во Flutter, где константные виджеты могут быть оптимизированы.
dart
Отличия от final:
const определяет значение, известное во время компиляции.final определяет значение, которое присваивается только один раз во время выполнения и не может быть изменено после этого.| Характеристика | const | final |
|---|---|---|
| Время инициализации | Время компиляции | Время выполнения (один раз) |
| Изменяемость значения | Неизменяемое | Присваивается один раз, затем неизменяемое |
| Применение к экземплярам | Создает константный экземпляр (если конструктор const) | Создает неизменяемую ссылку на объект |
| Применение к коллекциям | Создает неизменяемую коллекцию с неизменяемым содержимым | Создает неизменяемую ссылку на коллекцию (содержимое может быть изменяемым) |