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 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.