It doesn't. Dart has lists and list literals: [1, 2, 3]. Also, Dart has compile-time constants and you can make a list literal constant by prepending the const keyword: const [1, 2, 3]. Normal lists are mutable, while constant lists are not only immutable, but also canonicalized (i.e., there is always a single instance of such constant). See:
main() {
var a = [1, 2, 3];
var b = const [1, 2, 3];
var c = const [1, 2, 3];
print(a);
a[0] = 0;
print(a);
print(b === c); // the === operator tests for _identity_
// b[0] = 0; // this would fail
}
This program prints
I'd say that the recommended way of representing a point in Dart would be
class Point {
final num x, y;
Point(this.x, this.y);
}
:-)