Hashem Aboonajmi
Hashem Aboonajmi

Reputation: 13860

Whats ??= operator in Dart

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

Upvotes: 6

Views: 1781

Answers (3)

ajay
ajay

Reputation: 1000

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

Upvotes: 2

bluenile
bluenile

Reputation: 6029

??= 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.

Upvotes: 8

Malbolged
Malbolged

Reputation: 109

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

Upvotes: 0

Related Questions