问题
This is the new assignment operator I see in Flutter source code:
splashFactory ??= InkSplash.splashFactory;
textSelectionColor ??= isDark ? accentColor : primarySwatch[200];
what's the meaning of this assignment operator?
example in Flutter source code
回答1:
??= is a new null-aware operators. Specifically ??= is null-aware assignment operator.
?? if null operator.
expr1 ?? expr2evaluates toexpr1if notnull, otherwiseexpr2.
??= null-aware assignment.
v ??= exprcausesvto be assignedexpronly ifvisnull.
?. null-aware access.
x?.pevaluates tox.pifxis notnull, otherwise evaluates tonull.
回答2:
?? is a null check operator.
String name=person.name ?? 'John';
if person.name is null, then name is assigned a value of “John”.
??= simply means “If left-hand side is null, carry out assignment”. This will only assign a value if the variable is null.
splashFactory ??= InkSplash.splashFactory;
回答3:
The ?? double question mark operator means "if null" take the following expression.
来源:https://stackoverflow.com/questions/64642572/whats-operator-in-dart