Dart ma koncepcję stałych kompilacyjnych. Stała czasu kompilacji jest analizowana i tworzona w czasie kompilacji i kanonizowana.Dlaczego Dart ma stałe czasowe kompilacji?
Na przykład o to const
konstruktor Point:
class Point {
final num x, y;
const Point(this.x, this.y);
}
A oto jak go używać:
main() {
var p1 = const Point(0, 0);
var p2 = const Point(0, 0);
print(p1 == p2); // true
print(p1 === p2); // true
}
jest to nieoczywiste cecha, pozornie bez analogii do funkcji w innych językach dynamicznych. Istnieją restrykcje na obiektach const
, tak jak wszystkie pola muszą być ostateczne i muszą mieć konstruktor const.
Dlaczego Dart ma czasy kompilacji?