unnecessary_ nan_ comparison
Detalhes sobre o diagnóstico 'unnecessary_nan_comparison' produzido pelo analisador do Dart.
A double can't equal 'double.nan', so the condition is always 'false'.
A double can't equal 'double.nan', so the condition is always 'true'.
Descrição
#
O analisador emite este diagnóstico quando um valor é comparado com
double.nan usando == ou !=.
O Dart segue o padrão de ponto flutuante IEEE 754
para a semântica das
operações de ponto flutuante, que estabelece que, para qualquer valor de ponto
flutuante x (incluindo NaN, infinito positivo e infinito negativo):
NaN == xé sempre falsoNaN != xé sempre verdadeiro
Por isso, comparar qualquer valor com NaN não faz sentido, pois o resultado já é conhecido (com base no operador de comparação usado).
Exemplo
#
O código a seguir produz este diagnóstico porque d está sendo comparado com
double.nan:
bool isNaN(double d) => d == double.nan;
Correções comuns
#Use o getter double.isNaN no lugar:
bool isNaN(double d) => d.isNaN;
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.