Ключевое слово const
Ключевое слово const объявляет константу - переменную,
значение которой известно уже во время компиляции
и не может быть изменено после этого. В отличие от
final, значение const должно быть
вычислимо на этапе компиляции. Ключевое слово const
можно применять как к переменным, так и к конструкторам
классов, создавая канонические экземпляры.
Синтаксис
const type name = value;
const name = value;
const ClassName(...);
Пример
Объявим константу и выведем её значение:
void main()
{
const int a = 5;
print(a);
}
Результат выполнения кода:
5
Пример
Попытка изменить значение константы приводит к ошибке компиляции:
void main()
{
const int a = 5;
a = 10;
print(a);
}
Результат выполнения кода:
Error: Can't assign to the const variable 'a'.
Пример
Константы можно вычислять из других констант на этапе компиляции:
void main()
{
const int a = 2;
const int b = 3;
const int c = a + b;
print(c);
}
Результат выполнения кода:
5
Пример
Списки, объявленные через const,
также являются неизменяемыми:
void main()
{
const list = [1, 2, 3, 4, 5];
print(list);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Константный конструктор создаёт канонический экземпляр класса, который переиспользуется:
class Point
{
final int x;
final int y;
const Point(this.x, this.y);
}
void main()
{
const p1 = Point(1, 2);
const p2 = Point(1, 2);
print(identical(p1, p2));
}
Результат выполнения кода:
true