【发布时间】:2019-08-26 21:17:09
【问题描述】:
在 Dart 中,我发现可以在类中创建 const 构造函数。是否可以在使用相同字段的类中混合使用普通构造函数和 const 构造函数?或者它是否旨在始终将用于创建可变和不可变实例的类分开?
我尝试在同一个类中创建一个普通的和 const 的构造函数。问题是 const 构造函数需要 final 字段,因此如果一个普通的构造函数使用这些字段,那么它的实例字段将是不可变的。
void main() {
Jank fj = Jank.normal(5, 'LOL');
const cj = const Jank.fixed(6, 'HA');
fj.a = 123; //cannot do this, but want to
cj.a = 456; //cannot do this, is expected
}
class Jank {
final int a;
final String b;
Jank.normal(this.a, this.b);
const Jank.fixed(this.a, this.b);
}
我希望在使用 const 构造函数时能够使用不可变字段,并在使用普通构造函数时使用可变字段。似乎是其中之一。
【问题讨论】:
标签: dart