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