Dans Dart 2, si vous invoquez un constructeur comme une fonction, sans a new
ou const
devant, alors cela équivaut à utiliser new
. Si vous voulez une invocation const, vous devez le mettre const
devant.
Dans une expression const, vous n'avez pas besoin d'écrire à const
nouveau, et dans certains contextes qui nécessitent des expressions const (comme les expressions switch case et les initialiseurs de variables const), vous n'avez même pas besoin du const externe.
Vous n'avez donc jamais besoin d'écrire new
.
L'équipe de langage Dart veut autoriser les expressions dans lesquelles vous pouvez insérer new
ou const
et avoir toujours l'invocation correcte (c'est-à-dire un constructeur const avec des arguments constants) à insérer par défaut au const
lieu de new
, espérons-le dans une mise à jour précoce de Dart 2. Pour cette raison , Je recommande de l'écrire new
devant Object()
, ou tout autre constructeur const où vous avez besoin que l'objet soit une nouvelle instance. C'est un cas très rare, généralement vous ne vous souciez pas de l'identité de votre objet immuable (c'est pourquoi l'insertion const
est considérée comme une bonne idée).
new
ouconst
sont encore nécessaires (je ne me souviens pas d'exemples ou de règles). Ils pourraient faire une autre tentative après Dart 2 pour le rendre facultatif partout.