跳到主要內容

unnecessary_null_comparison

運算元不能為 'null',因此條件始終為 'false'。

運算元不能為 'null',因此條件始終為 'true'。

運算元必須為 'null',因此條件始終為 'false'。

運算元必須為 'null',因此條件始終為 'true'。

描述

#

當分析器發現等式比較(==!=)中一個運算元為 null 而另一個運算元不能為 null 時,會產生此診斷資訊。此類比較結果總是 truefalse,因此沒有任何作用。

示例

#

以下程式碼會產生此診斷資訊,因為 x 永遠不能為 null,所以比較結果始終評估為 true

dart
void f(int x) {
  if (x != null) {
    print(x);
  }
}

以下程式碼會產生此診斷資訊,因為 x 永遠不能為 null,所以比較結果始終評估為 false

dart
void f(int x) {
  if (x == null) {
    throw ArgumentError("x can't be null");
  }
}

常見修復方法

#

如果另一個運算元應該能夠為 null,則更改運算元的型別

dart
void f(int? x) {
  if (x != null) {
    print(x);
  }
}

如果另一個運算元確實不能為 null,則移除該條件

dart
void f(int x) {
  print(x);
}