In meiner Dart-basierten Anwendung habe ich gerade bemerkt, dass ich das weglassen kann new
Schlüsselwort und alles einwandfrei funktioniert.
Anstelle final widget = new Widget();
kann ich auch verwendenfinal widget = Widget();
.
Hat dies Auswirkungen auf den Code?
new
oderconst
die noch erforderlich sind (ich erinnere mich nicht an Beispiele oder Regeln). Sie könnten nach Dart 2 einen weiteren Versuch unternehmen, es überall optional zu machen.new
erforderlich ist. Wenn Sienew
ein korrektes Programm weglassen , funktioniert es immer auf die gleiche Weise. Wenn Sie entfernenconst
aus einem Arbeitsprogramm, dann in den meisten Fällen , in denen Sie sich haben , schreibenconst
für das Programm gültig ist, wird es nach wie vor gültig. Immer wennconst
der Ausdruck bereits umgeben ist, können Sie die verschachtelte Konstante weglassen.Wenn Sie in Dart 2 einen Konstruktor wie eine Funktion ohne
new
oderconst
vor aufrufen , entspricht dies der Verwendungnew
. Wenn Sie einen const-Aufruf wünschen, sollten Sie setzenconst
.Innerhalb eines const-Ausdrucks müssen Sie nicht
const
erneut schreiben , und in einigen Kontexten, in denen const-Ausdrücke erforderlich sind (z. B. Switch-Case-Ausdrücke und Initialisierer von const-Variablen), benötigen Sie nicht einmal die äußere const.Sie müssen also nie schreiben
new
.Das Dart-Sprachteam möchte zulassen, dass Ausdrücke, in die Sie entweder einfügen können
new
oder beiconst
denen der Aufruf korrekt ist (dh ein const-Konstruktor mit konstanten Argumenten), standardmäßigconst
anstelle vonnew
eingefügt werden, hoffentlich in einem frühen Update von Dart 2. Aus diesem Grund , empfehle ich schreibenew
es vorObject()
, oder jede andere const Konstruktor , wo Sie müssen das Objekt eine neue Instanz sein. Dies ist ein sehr seltener Fall. Normalerweise interessiert Sie die Identität Ihres unveränderlichen Objekts nicht (weshalb das Einfügenconst
als gute Idee angesehen wird).quelle
Wie in allen anderen Antworten angegeben, ist die Verwendung in Dart 2
new
optional. Darüber hinaus wird von der Verwendung durch die Effective Dart-Richtliniennew
abgeraten .quelle
Das
new
Schlüsselwort wurde in Dart 2 optional gemacht. Ab sofort gibt der Aufruf einer Klasse immer eine neue Instanz dieser Klasse zurück. Gemäß meiner Empfehlung können Sie es ( NICHT OBLIGATORISCH ) außerhalb einer Layoutdefinition verwenden, aber in Layouts weglassen.Ein weiterer Punkt, den ich teilen möchte mit dir ist , dass , wenn Sie verwenden
new
oderconst
Keyword während deklarieren Widgets , Sie sind auch in der Lage das sehen + Symbol , das Sie den Widget Körper Code reduzieren und erweitern können. Dies ist nützlich, wenn Sie den restlichen Widget-Code in der Dart-Datei reduzieren / ausblenden möchten, während Sie an einem anderen Widget-Code in derselben Datei arbeiten.quelle
new
wird davon abgeraten: Wenn Sie es verwenden, sieht es so aus, als würde es bedingungslos eine neue Instanz erstellen, wenn dies nicht der Fall ist.