Dart 编程中的空感知运算符
Dart有不同的空感知运算符,我们可以使用它们来确保我们不访问空值并以微妙的方式处理它们。
主要是,这些是-
??运算符
??=运算符
?运算符
我们将在下一篇文章中逐一介绍。
??运算符
这??当且仅当它不为空时,运算符才返回第一个表达式。
例子
考虑下面显示的例子-
void main() { var age; age = age ?? 23; print(age); var name = "mukul"; name = name ?? "suruchi"; print(name); }
在上面的例子中,我们声明了两个变量,其中一个为空值,另一个不为空并包含一个字符串值。我们正在使用??将值重新分配给这些变量时的运算符。在第一个变量中,由于年龄为空,??运算符将返回第二个值,即23,在第二种情况下,name变量不为空,因此第一个值将从??运算符。
输出
23 mukul
??=运算符
Dart中的??=运算符用于当且仅当它不为null时要赋值。
例子
考虑下面显示的例子-
void main() { var age; var myAge = 24; myAge ??= age; print(myAge); }
在上面的例子中,我们有两个变量,其中一个为空,另一个包含一个int值,当我们尝试将age变量的值分配给myAge变量时,它什么也没做,因为age为空,因此??=不会改变myAge变量的原始值。
输出
24
?运算符
这?当我们想确保我们不调用空值的函数时使用运算符。当且仅当对象不为空时,它才会调用函数。
例子
考虑下面显示的例子-
void main() { var earthMoon; var length = earthMoon?.length; print(length); }
在上面的代码中,我们知道变量earthMoon的值为null,因此当我们尝试使用?运算符没有任何改变,长度变量也是一个空值。
输出
null