Почему только статические поля могут быть объявлены как "const"?
Я только что обновил свой редактор дротиков (0.5.16_r23799), и код, который был без ошибок/предупреждений, больше не существует.
class Fubar {
const BAR = 1000000;
Fubar(){
}
}
строки, начинающиеся с const
есть маркер и это сообщение :
только статические поля могут быть объявлены как 'const'
Я прочитал это ch02-final-const, ничего нет.
этот пост dart-const-static-fields говорит, что const modifier implies static
, если мы не можем использовать const
без static
, мы должны использовать ?... но какой документ / пост я пропустил ? Намерены сделать это :
Fubar f = new Fubar();
some = f.BAR;
1 ответов
это недавнее изменение, связанное с Примечания от 4 июня Dart Language Design Meeting :
переменные экземпляра const
Гилад считает, что они должны работать, как статика, за исключением области. По-видимому, однако, это усложняет реализацию VM метаданных экземпляра. Три решения:
- нет полей экземпляра const.
- метаданные статически области.
- попробуйте сделать это правильно.
Ларсу нравится 1. Я говорю, что 1 упрощает вещи для пользователей. Прямо сейчас люди путаются со статическим окончательным const и т. д. Гилад ОК с 1.
Я спросил, Будет ли синтаксис " static const "или просто"const"? Пользователи путаются, когда им приходится делать "статические" константы.
Ларс говорит, что они смущены, потому что не понимают систему. Требование "статического" поможет им понять, что происходит на.