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.new
se requiera. Si omitenew
de un programa correcto, siempre seguirá funcionando de la misma manera. Si se quitaconst
de un programa de trabajo, a continuación, en la mayoría de los casos en los que le tienen que escribirconst
para que el programa sea válida, seguirá siendo válida. Siempre que ya haya unconst
alrededor de la expresión, puede omitir la const anidada.