unnecessary_null_comparison
運算元不能為 'null',因此條件始終為 'false'。
運算元不能為 'null',因此條件始終為 'true'。
運算元必須為 'null',因此條件始終為 'false'。
運算元必須為 'null',因此條件始終為 'true'。
描述
#當分析器發現等式比較(== 或 !=)中一個運算元為 null 而另一個運算元不能為 null 時,會產生此診斷資訊。此類比較結果總是 true 或 false,因此沒有任何作用。
示例
#以下程式碼會產生此診斷資訊,因為 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);
}