В Dart 2, если вы вызываете конструктор как функцию без new
или const
впереди, тогда это эквивалентно использованию new
.
Если вы хотите вызвать const, тогда вам нужно поставить const
впереди.
Внутри константного выражения вам не нужно снова писать const
, а в некоторых контекстах требуется константных выражений (таких как выражения переключателя и инициализаторы константных переменных). ), вам даже не нужен внешний констант.
Так что вам не нужно писать new
.
Команда языка Dart хочет разрешить выражениям, в которых вы можете вставить либо new
, либо const
, и при этом иметь правильный вызов (т. Е. Конструктор const с постоянными аргументами), чтобы по умолчанию вставлять const
вместо new
, надеюсь, в раннем обновлении до Dart 2.
По этой причине я рекомендую написать new
перед Object()
или любым другим const конструктором, где вам нужен объект, чтобы быть новым экземпляром. Это очень редкий случай, обычно вас не волнует идентичность вашего неизменяемого объекта (именно поэтому вставка const
считается хорошей идеей).