Dart 有什么问题??飞镖双问号?
以下代码行有两个问号:Dart 有什么问题??飞镖双问号?,dart,operators,Dart,Operators,以下代码行有两个问号: final myStringList = prefs.getStringList('my_string_list_key') ?? []; 什么意思?双问号操作符的意思是“if null”。以下面的表达式为例 String a = b ?? 'hello'; 这意味着a等于b,但如果b为空,则a等于'hello' 另一个相关操作符是??=。例如: b ??= 'hello'; 这意味着如果b为空,则将其设置为等于hello。否则,不要改变它 参考 术语 这些
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
什么意思?双问号操作符的意思是“if null”。以下面的表达式为例
String a = b ?? 'hello';
这意味着a
等于b
,但如果b
为空,则a
等于'hello'
另一个相关操作符是??=
。例如:
b ??= 'hello';
这意味着如果b
为空,则将其设置为等于hello
。否则,不要改变它
参考
——如果为空运算符??
——空感知赋值??=
——空感知访问x?.p
——空感知方法调用x?.m()
- Dart提供了一些方便的运算符,用于处理可能为空的值。一个是???=赋值运算符,它仅在变量当前为空时才为该变量赋值:
int a; // The initial value of a is null.
a ??= 3;
print(a); // <-- Prints 3.
a ??= 5;
print(a); // <-- Still prints 3.
int a;//a的初始值为空。
a=3;
打印(a);//有趣的是为什么会这样??不是吗?:,对于来自PHP的人来说,这是相当误导的,比如??在PHP中,它的意思完全相反。@Vedmant可能是因为三元运算符已经在使用?
:字符串a=b==true?“x':'y'代码>。哪个if null操作符只是三元null检查的简写,比如String a=a==null?“你好:a,
@BrunoFinger?
在PHP中用于三元运算符的方式与此相同,并且有如下快捷方式代替$a=$b==true$b:'y'
您可以键入$a=$b==true?:'y'
或代替$a=$b==true?'x':$b
-$a=$b==truex'
你是否回复了一篇两年前已经回复的帖子,要求投票?
print(1 ?? 3); // <-- Prints 1.
print(null ?? 12); // <-- Prints 12.