什么??= Dart 中的运算符



这是我在 Flutter 源代码中看到的新赋值运算符:

splashFactory ??= InkSplash.splashFactory;
textSelectionColor ??= isDark ? accentColor : primarySwatch[200];

此赋值运算符的含义是什么?

颤振源代码中的示例

??= 是一个新的空感知运算符。具体说来??= 是识别空值的赋值运算符。

?? 如果为空运算符。expr1 ?? expr2计算结果为expr1,如果不是null,否则expr2

??= 识别空的分配。v ??= expr导致分配vexpr只有当vnull.

?. 空感知访问。 如果x不是nullx?.p计算结果为x.p,否则计算结果为null

??是一个空检查运算符。

String name=person.name ?? 'John';

如果 person.name 为 null,则为 name 分配值"John"。

??=简单地表示"如果左侧为空,则执行赋值"。仅当变量为 null 时,这将分配一个值。

splashFactory ??= InkSplash.splashFactory;

?? 双问号运算符表示"if null"采用以下表达式。