Dart tiene el concepto de constantes de tiempo de compilación. Una constante de tiempo de compilación se analiza y se crea en tiempo de compilación, y se canonicaliza.¿Por qué Dart tiene constantes de tiempo de compilación?
Por ejemplo, aquí es un constructor const
de Punto:
class Point {
final num x, y;
const Point(this.x, this.y);
}
Y aquí es cómo lo usa:
main() {
var p1 = const Point(0, 0);
var p2 = const Point(0, 0);
print(p1 == p2); // true
print(p1 === p2); // true
}
Esta es una característica no obvia, aparentemente sin paralelos con características en otros lenguajes dinámicos. Existen restricciones en los objetos const
, como todos los campos deben ser finales y debe tener un constructor const.
¿Por qué Dart tiene constantes de tiempo de compilación?