我正在尝试实现复制构造方法/方法,但是参数之一是min = min
。我环顾四周,曾经提到使用?value来确定是否提供了该值,但该值不能编译:
Boolean
如果class Model {
final String id;
final bool isEnabled;
Model.copyFrom(Model data,
{String id,
bool isEnabled})
: id = id ?? data.id,
isEnabled = ?isEnabled ?? data.isEnabled);
}
没有提供isEnabled
,我如何告诉它使用copyFrom
中的那个。如果未提供,则必须保留true或false值。
data
引发语法错误:意外的文本'?'。
答案 0 :(得分:1)
在
isEnabled = ?isEnabled ?? data.isEnabled
??
已经检查了null
,不需要?
前缀。
这应该做你想要的
isEnabled = isEnabled ?? data.isEnabled
无需区别对待布尔值。
例如,?
或更好的?.
的作用
foo?.isEnabled
是,当isEnabled
为foo
时,它不会尝试评估null
,而只是返回null
,因为null
没有isEnabled
吸气剂,这将导致异常。