以下代码行带有两个问号:
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'