128 votes

Avez-vous besoin d'utiliser le "nouveau" mot clé dans Dart?

Dans mon application basée sur Dart, je viens de remarquer que je peux omettre le mot clé new et tout fonctionne parfaitement bien.

Au lieu de final widget = new Widget(); je peux également utiliser final widget = Widget(); .

Est-ce que cela a un effet sur le code?

162voto

Non, il n'est pas. Avec Dart 2 (cliquez pour l'annonce, avec plus d'informations) l' new et également const mots-clés ont été faites en option.

Cela signifie qu' new Widget() fait exactement le même que Widget() sur son propre.


L' const mot-clé le pouvez, cependant, modifier une valeur qui ne serait pas un const implicitement à une const.
Ainsi, vous aurez à spécifier explicitement const en cas de besoin.

25voto

lrn Points 8630

Dans Dart 2, si vous appelez un constructeur comme une fonction, sans new ou const dans le front, alors il est équivalent à l'utilisation de new. Si vous voulez un const invocation, alors vous devriez mettre de l' const à l'avant.

À l'intérieur d' un const expression, vous n'avez pas besoin d'écrire const , et dans certains contextes qui exigent const expressions (comme commutateur cas, les expressions et les initialiseurs de const variables), vous n'avez même pas besoin de l'extérieur const.

Si vous n'avez pas toujours besoin d'écrire new.

Dart langue équipe veut permettre à des expressions où vous pouvez insérez new ou const et ont encore l'invocation être correcte (c'est un const constructeur avec les querelles constantes) à défaut, à l'insertion, const au lieu de new, espérons-le, dans un début de mise à jour de la Dart 2. Pour cette raison, je recommande la rédaction new avant Object(), ou de toute autre const constructeur où vous avez besoin de l'objet à une nouvelle instance. C'est un cas très rare, en général, vous n'avez pas de soins sur l'identité de votre immuables de l'objet (c'est pourquoi l'insertion d' const est considéré comme une bonne idée).

10voto

jamesdlin Points 13455

Comme l'indiquent toutes les autres réponses, dans Dart 2, l'utilisation de new est facultative. De plus, l' utilisation de new est déconseillée par les directives Effective Dart .

6voto

Rahul Sharma Points 2074

L' new mot-clé a été rendu facultatif dans Dart 2. A partir de maintenant, l'appel d'une classe sera toujours renvoyer une nouvelle instance de cette classe. Conformément à ma recommandation, vous pouvez l'utiliser (PAS OBLIGATOIRE) à l'extérieur du plan de la définition, mais omettre dans l'intérieur de Mises en page.

Un point de plus que je voudrais partager avec vous les gars, c'est que si vous utilisez new ou const mot-clé, tout en déclarant widgets, vous êtes également en mesure de voir l' icône+ que vous pouvez utiliser pour développer et réduire le widget code de corps. Ceci est utile lorsque vous souhaitez réduire/masquer le reste code du widget dans dart fichier tout en travaillant sur un autre code du widget dans le même fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X