tutorial - ¿Necesita usar la palabra clave "nuevo" en Dart?
dart vs javascript (4)
En mi aplicación basada en Dart, me di cuenta de que puedo omitir la
new
palabra clave y todo funciona perfectamente bien.
En lugar de
final widget = new Widget();
También puedo usar el
final widget = Widget();
.
¿Esto tiene algún efecto en el código?
Como indican todas las demás respuestas, en Dart 2, el uso de
new
es opcional.
Además, el
uso de
new
se
recomienda por las directrices de Dardos efectivos
.
En Dart 2, si invoca un constructor como una función, sin una
new
o una
const
en el frente, entonces es equivalente a usar una
new
.
Si quieres una invocación de const, entonces debes poner
const
en frente.
Dentro de
una expresión const, no necesita escribir
const
nuevo, y en algunos contextos que
requieren
expresiones const (como expresiones de mayúsculas y minúsculas e inicializadores de variables const), ni siquiera necesita el const externo.
Así que nunca necesitas escribir
new
.
El equipo de lenguaje de dardos desea permitir expresiones en las que puede insertar ya sea
new
o
const
y aun así tener la invocación correcta (es decir, un constructor de const con argumentos constantes) como valor predeterminado para la inserción de
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 de
const
en el que
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 (por lo que la inserción de
const
se considera una buena idea).
La
new
palabra 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 omitir dentro de Diseños.
Un punto más que me gustaría compartir con ustedes es que si utiliza una palabra clave
new
o
const
al declarar
widgets
, también puede ver el
icono +
que puede usar para contraer y expandir el código del cuerpo del widget.
Esto es útil cuando desea contraer / ocultar el resto del código del widget en el
archivo de dart
mientras trabaja en otro código del widget en el mismo archivo.
No, no lo hace.
Con
Dart 2 (haga clic para el anuncio con más información)
las palabras clave
new
y
const
se hicieron
opcionales
.
Esto significa que el
new Widget()
hace exactamente lo mismo que
Widget()
por sí solo.