The following line of code has two question marks:
final myStringList = prefs.getStringList(\'my_string_list_key\') ?? [];
What is the mean
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
Terms
The Dart 1.12 release news collectively referred to the following as null-aware operators:
??
-- if null operator??=
-- null-aware assignmentx?.p
-- null-aware accessx?.m()
-- null-aware method invocation