vasos tutorial traduccion google español container dart

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?



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.