Dart编程中的空感知运算符


Dart 有不同的空感知运算符,我们可以使用它们来确保我们不会访问空值,并以一种巧妙的方式处理它们。

主要有:

  • ?? 运算符

  • ??= 运算符

  • ? 运算符

我们将在接下来的文章中逐一讲解它们。

?? 运算符

?? 运算符仅当第一个表达式不为 null 时才返回第一个表达式。

示例

请考虑以下示例:

void main() {
   var age;
   age = age ?? 23;
   print(age);

   var name = "mukul";
   name = name ?? "suruchi";
   print(name);
}

在上面的示例中,我们声明了两个变量,其中一个为空值,另一个不为空,包含一个字符串值。我们在重新赋值变量时使用了 ?? 运算符。对于第一个变量,由于 age 为 null,?? 运算符将返回第二个值,即 23;在第二种情况下,name 变量不为 null,因此 ?? 运算符将返回第一个值。

输出

23
mukul

??= 运算符

Dart 中的 ??= 运算符用于当且仅当值为 null 时才赋值。

示例

请考虑以下示例:

void main() {
   var age;
   var myAge = 24;
   myAge ??= age;
   print(myAge);
}

在上面的示例中,我们有两个变量,其中一个为 null,另一个包含一个 int 值。当我们尝试将 age 变量的值赋给 myAge 变量时,它什么也没做,因为 age 为 null,因此 ??= 不会更改 myAge 变量的原始值。

输出

24

? 运算符

? 运算符用于确保我们不会调用 null 值的函数。它仅当对象不为 null 时才调用函数。

示例

请考虑以下示例:

void main() {
   var earthMoon;
   var length = earthMoon?.length;
   print(length);
}

在上面的代码中,我们知道变量 earthMoon 的值为 null,因此当我们尝试使用 ? 运算符在其上调用 length 函数时,没有任何变化,length 变量也为 null 值。

输出

null

更新于:2021年5月24日

536 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告