这是我在 Flutter 源代码中看到的新赋值运算符:
splashFactory ??= InkSplash.splashFactory;
textSelectionColor ??= isDark ? accentColor : primarySwatch[200];
此赋值运算符的含义是什么?
颤振源代码中的示例
??= 是一个新的空感知运算符。具体说来??= 是识别空值的赋值运算符。
?? 如果为空运算符。
expr1 ?? expr2
计算结果为expr1
,如果不是null
,否则expr2
。
??= 识别空的分配。
v ??= expr
导致分配v
expr
只有当v
是null
.
?. 空感知访问。 如果
x
不是null
,x?.p
计算结果为x.p
,否则计算结果为null
。
??是一个空检查运算符。
String name=person.name ?? 'John';
如果 person.name 为 null,则为 name 分配值"John"。
??=简单地表示"如果左侧为空,则执行赋值"。仅当变量为 null 时,这将分配一个值。
splashFactory ??= InkSplash.splashFactory;
?? 双问号运算符表示"if null"采用以下表达式。