NaN 비교는 불필요합니다

NaN 비교는 불필요합니다

Dart 분석기가 만들어내는 'unnecessary_nan_comparison' 진단에 대한 자세한 내용입니다.

출처: unnecessary_nan_comparison

본문

Description

분석기는 어떤 값이 == 또는 !=를 사용해 double.nan과 비교될 때 이 진단을 만들어냅니다. Dart는 부동소수점 연산의 의미를 위해 IEEE 754 부동소수점 표준을 따르며, 이 표준은 어떤 부동소수점 값 x(NaN, 양의 무한대, 음의 무한대 포함)에 대해서도 NaN == x는 항상 false이고 NaN != x는 항상 true라고 규정합니다. 결과적으로 어떤 값을 NaN과 비교하는 것은 결과가 (사용 중인 비교 연산자에 따라) 이미 정해져 있기 때문에 아무 의미가 없습니다.

Example

다음 코드는 ddouble.nan과 비교되고 있기 때문에 이 진단을 만들어냅니다.

bool isNaN(double d) => d == double.nan;

Common fixes

대신 getter double.isNaN을 사용해주세요.

bool isNaN(double d) => d.isNaN;

더 알아보기

  • double.isNaN — API 문서에서 isNaN getter 자세히 보기