En Dart 2, si invoca un constructor como una función, sin new
o const
al frente, entonces es equivalente a usar new
. Si desea una invocación constante, debe poner const
al frente.
Dentro de una expresión const, no es necesario volver a escribir const
, y en algunos contextos que requieren expresiones const (como expresiones de cambio de mayúsculas y minúsculas e inicializadores de variables const), ni siquiera necesita la const externa.
Así que no necesitas escribir nunca new
.
El equipo de lenguaje de Dart quiere permitir expresiones en las que puede insertar new
o const
y que la invocación sea correcta (es decir, un constructor constante con argumentos constantes) para que se inserten de forma predeterminada en const
lugar de new
, con suerte, en una actualización temprana de Dart 2. Por esa razón , Recomiendo escribirlo new
delante de Object()
, o cualquier otro constructor constante donde necesite que el objeto sea una nueva instancia. Ese es un caso muy raro, por lo general no le importa la identidad de su objeto inmutable (razón por la cual insertar const
se considera una buena idea).
new
oconst
todavía son necesarios (no me acuerdo ejemplos o reglas). Es posible que hagan otro intento después de Dart 2 para que sea opcional en todas partes.