以下代码行带有两个问号:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
什么意思?
Answers:
该??双问号操作装置“如果空”。以下面的表达式为例。
String a = b ?? 'hello';
这意味着a等于b,但如果b为null,则a等于'hello'。
另一个相关的运算符是??=。例如:
b ??= 'hello';
这意味着如果b为null,则将其设置为hello。否则,请勿更改。
参考
条款
该飞镖1.12发布消息统称以下为空感知运营商:
?? -如果为null运算符??= -空感知分配x?.p -空感知访问x?.m() -空感知方法调用?三元运算符已使用它:String a = b == true ? 'x' : 'y';。if-null运算符只是三元null检验(如)的简写String a = a == null ? 'hello : a;。
?用于三元运算符在PHP同样的方式,并有快捷键喜欢的,而不是$a = $b === true ? $b : 'y'你可以输入$a = $b === true ?: 'y'或代替$a = $b === true ? 'x' : $b-$a = $b === true ?? 'x'