【发布时间】:2021-11-18 13:45:03
【问题描述】:
我不知道如何正确解释,让我们看一个例子:
class Shape {
Colors color;
Shape({
this.color = Colors.black
});
factory Shape.Circle({
Colors? color
}) {
return Shape(color: color ?? Colors.black);
}
}
现在理想情况下,我只想为类中的可选color 字段赋值,而不是在每个工厂或构造函数上重复它。但我不确定如何简洁地实现这一目标。
我知道我可以有一个if 语句并根据color 是否为空的事实创建Shape,但这看起来很丑。
【问题讨论】:
-
无法复制默认值。我只是将主要的
Shape构造函数设为Shape({Colors? color}) : color = color ?? Colors.black;,然后让所有其他构造函数使用null作为默认值。