问题
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 ?? expr2
evaluates toexpr1
if notnull
, otherwiseexpr2
.
??= null-aware assignment.
v ??= expr
causesv
to be assignedexpr
only ifv
isnull
.
?. null-aware access.
x?.p
evaluates tox.p
ifx
is 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