- 集合或对象。集合必须用
const
修饰,对象的构造函数必须用const
修饰。
void main() {
const a = const [1,2,3];
const b = ConstObject(2);
b.log();
}
class ConstObject {
final value;
const ConstObject(this.value);
log() {
print(value);
}
}
(2) const
用在等号右边
当const
用在=
右边,其作用是 修饰值,它意味着对象的整个深度状态可以在编译时完全确定,并且对象将被冻结并且完全不可变。
一般用于修饰集合,它要求两点:
- 集合的元素必须是递归的编译时常数,也就是上面提到的三种情况。
void main() {
var c = 2;
//ERROR, 集合元素必须是编译时常数。
var a = const [c,2,3];
}
- 不允许对集合做任何改变。
void main() {
const a = const [1,2,3];
//ERROR, 不允许修改。
a[1] = 2;
}