以下代码行有两个问号:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
这是什么意思?
以下代码行有两个问号:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
这是什么意思?
??
双问号运算符表示"if null".以下面的表达式为例.
String a = b ?? 'hello';
这意味着a
等于b
,但如果b
为NULL,则a
等于'hello'
.
另一个相关操作员是??=
.例如:
b ??= 'hello';
这意味着如果b
为NULL,则将其设置为等于hello
.否则,不要更改它.
Reference
Terms个
这Dart 1.12 release news人统称为null-aware operators人:
??
——如果为null运算符??=
--支持空的分配x?.p
--支持空的访问x?.m()
--支持空的方法调用