Вы можете, теоретически, изменить Дарт так, чтобы модификатор const
ввел static
. Это действительное предложение и активно обсуждалось.
Есть две причины, почему мы предпочитаем требующие явного static
:
- Это делает его более ясным, как эти переменные могут быть доступны (как и любой другой статический).
- Возможно, мы захотим использовать экземпляр
const
для другого значения. На данный момент поля экземпляров const
строго эквивалентны полям final
. Однако им не обязательно быть. Например, вы можете изменить спецификацию Dart, чтобы разрешить доступ к полям экземпляров const
как часть постоянного выражения. (В настоящее время не допускается доступ к полям с правой стороны от полей const
.)