Whats ??= operator in Dart

Viewed 856

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

3 Answers

??= is a new null-aware operators. Specifically ??= is null-aware assignment operator.

?? if null operator. expr1 ?? expr2 evaluates to expr1 if not null, otherwise expr2.

??= null-aware assignment. v ??= expr causes v to be assigned expr only if v is null.

?. null-aware access. x?.p evaluates to x.p if x is not null, otherwise evaluates to null.

?? 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;

The ?? double question mark operator means "if null" take the following expression.

Related