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