unnecessary_nan_comparison
雙精度浮點數(double)不可能等於 'double.nan',因此該條件始終為 'false'。
雙精度浮點數(double)不可能等於 'double.nan',因此該條件始終為 'true'。
描述
#當使用 == 或 != 將值與 double.nan 進行比較時,分析器會產生此診斷。
Dart 遵循 IEEE 754 浮點標準來定義浮點運算的語義,該標準規定,對於任何浮點數值 x (包括 NaN、正無窮大和負無窮大),
NaN == x始終為 falseNaN != x始終為 true
因此,將任何值與 NaN 進行比較是沒有意義的,因為結果是已知的(取決於使用的比較運算子)。
示例
#以下程式碼會產生此診斷,因為 d 正在與 double.nan 進行比較
dart
bool isNaN(double d) => d == double.nan;常見修復方法
#請改用 getter double.isNaN
dart
bool isNaN(double d) => d.isNaN;