2013-06-08 3 views
2

Я читал this answer на SO, и мне было интересно, почему поля явно объявляются как static, так и const. Являются ли константные поля компиляцией констант времени в Дарте? и если это не означает, что они неявно статичны?dart const static fields

ответ

4

Вы можете, теоретически, изменить Дарт так, чтобы модификатор const ввел static. Это действительное предложение и активно обсуждалось.

Есть две причины, почему мы предпочитаем требующие явного static:

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