En mi aplicación basada en Dart, acabo de notar que puedo omitir la newpalabra clave y todo funciona perfectamente bien.
En lugar de final widget = new Widget();también puedo usar final widget = Widget();.
¿Tiene esto algún efecto en el código?

newoconsttodaví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.newse requiera. Si omitenewde un programa correcto, siempre seguirá funcionando de la misma manera. Si se quitaconstde un programa de trabajo, a continuación, en la mayoría de los casos en los que le tienen que escribirconstpara que el programa sea válida, seguirá siendo válida. Siempre que ya haya unconstalrededor de la expresión, puede omitir la const anidada.En Dart 2, si invoca un constructor como una función, sin
newoconstal frente, entonces es equivalente a usarnew. Si desea una invocación constante, debe ponerconstal 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
newoconsty que la invocación sea correcta (es decir, un constructor constante con argumentos constantes) para que se inserten de forma predeterminada enconstlugar denew, con suerte, en una actualización temprana de Dart 2. Por esa razón , Recomiendo escribirlonewdelante deObject(), 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 insertarconstse considera una buena idea).fuente
Como indican todas las demás respuestas, en Dart 2, el uso
newes opcional. Además, las pautas de Effective Dart desaconsejan su usonew.fuente
La
newpalabra clave se hizo opcional en Dart 2. A partir de ahora, llamar a una clase siempre devolverá una nueva instancia de esa clase. Según mi recomendación, puede usarlo ( NO OBLIGATORIO ) fuera de una definición de diseño, pero omitirlo en diseños internos.Un punto más que me gustaría compartir con ustedes es que si usa la palabra clave
newoconstmientras declara widgets , también puede ver el ícono + que puede usar para contraer y expandir el código del cuerpo del widget. Esto es útil cuando desea contraer / ocultar el código del widget restante en el archivo dart mientras trabaja en otro código del widget en el mismo archivo.fuente
newse desaconseja: usarlo parece que crea incondicionalmente una nueva instancia cuando es posible que no.