Dart hat das Konzept der Kompilierzeitkonstanten. Eine Kompilierzeitkonstante wird analysiert und zur Kompilierzeit erstellt und kanonisiert.Warum hat Dart Kompilierzeitkonstanten?
Zum Beispiel, hier ist ein const
Konstruktor für Point:
class Point {
final num x, y;
const Point(this.x, this.y);
}
Und hier ist, wie Sie es verwenden:
main() {
var p1 = const Point(0, 0);
var p2 = const Point(0, 0);
print(p1 == p2); // true
print(p1 === p2); // true
}
Dies ist eine nicht-offensichtliche Funktion, mit scheinbar keine Parallele zu Funktionen in anderen dynamischen Sprachen. Es gibt Einschränkungen für const
Objekte, wie alle Felder müssen endgültig sein und es muss einen Const-Konstruktor haben.
Warum hat Dart Kompilierzeitkonstanten?