Dart 有编译时常量的概念。编译时常量在编译时被解析和创建,并被规范化。
例如,这是const
Point 的构造函数:
class Point {
final num x, y;
const Point(this.x, this.y);
}
以下是你如何使用它:
main() {
var p1 = const Point(0, 0);
var p2 = const Point(0, 0);
print(p1 == p2); // true
print(p1 === p2); // true
}
这是一个不明显的功能,似乎与其他动态语言中的功能没有相似之处。对象有一些限制const
,比如所有字段都必须是 final 的,并且它必须有一个 const 构造函数。
为什么 Dart 有编译时常量?