Dans Dart 2, si vous invoquez un constructeur comme une fonction, sans a newou constdevant, alors cela équivaut à utiliser new. Si vous voulez une invocation const, vous devez le mettre constdevant.
Dans une expression const, vous n'avez pas besoin d'écrire à constnouveau, 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 newou constet avoir toujours l'invocation correcte (c'est-à-dire un constructeur const avec des arguments constants) à insérer par défaut au constlieu de new, espérons-le dans une mise à jour précoce de Dart 2. Pour cette raison , Je recommande de l'écrire newdevant 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 constest considérée comme une bonne idée).
newouconstsont 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.