The following line of code has two question marks:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
What is the meaning?
The following line of code has two question marks:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
What is the meaning?
The ??
double question mark operator means "if null". Take the following expression, for example.
String a = b ?? 'hello';
This means a
equals b
, but if b
is null then a
equals 'hello'
.
Another related operator is ??=
. For example:
b ??= 'hello';
This means if b
is null then set it equal to hello
. Otherwise, don't change it.
Reference
Note
??
is called a nil-coalescing operator, where nil means null. I couldn't find an official name for the ??
operator in the Dart documentation, but calling it a null-aware operator seems pretty good.