Dart có khái niệm về hằng số biên dịch. Một hằng số biên dịch-thời gian được phân tích cú pháp và tạo ra tại thời gian biên dịch và được chuẩn hóa.Tại sao Dart có biên dịch hằng số thời gian?
Ví dụ, đây là một constructor const
cho Point:
class Point {
final num x, y;
const Point(this.x, this.y);
}
Và đây là cách bạn sử dụng nó:
main() {
var p1 = const Point(0, 0);
var p2 = const Point(0, 0);
print(p1 == p2); // true
print(p1 === p2); // true
}
Đây là một tính năng không rõ ràng, với dường như không có điểm tương đồng với tính năng bằng các ngôn ngữ động khác. Có các hạn chế đối với các đối tượng const
, giống như tất cả các trường phải là cuối cùng và phải có một hàm tạo const.
Tại sao Dart có hằng số thời gian biên dịch?