unchecked_ use_ of_ nullable_ value
Detalhes sobre o diagnóstico 'unchecked_use_of_nullable_value' produzido pelo analisador do Dart.
A nullable expression can't be used as a condition.
A nullable expression can't be used as an iterator in a for-in loop.
A nullable expression can't be used in a spread.
A nullable expression can't be used in a yield-each statement.
The function can't be unconditionally instantiated because it can be 'null'.
The function can't be unconditionally invoked because it can be 'null'.
The method '{0}' can't be unconditionally invoked because the receiver can be 'null'.
The operator '{0}' can't be unconditionally invoked because the receiver can be 'null'.
The property '{0}' can't be unconditionally accessed because the receiver can be 'null'.
Descrição
#
O analisador produz este diagnóstico quando uma expressão cujo tipo é potencialmente não anulávelPotentially non-nullableUm tipo que é non-nullable explicitamente ou
por ser um parâmetro de tipo. Saiba mais
é desreferenciada sem antes verificar se o valor não é null.
Exemplo
#
O código a seguir produz este diagnóstico porque s pode ser null no ponto em que é referenciado:
void f(String? s) {
if (s.length > 3) {
// ...
}
}
Correções comuns
#
Se o valor realmente pode ser null, então adicione um teste para garantir que os membros sejam acessados apenas quando o valor não for
null:
void f(String? s) {
if (s != null && s.length > 3) {
// ...
}
}
Se a expressão é uma variável e o valor nunca deveria ser null, então altere o tipo da variável para não anulável:
void f(String s) {
if (s.length > 3) {
// ...
}
}
Se você acredita que o valor da expressão nunca deveria ser null, mas não pode alterar o tipo da variável, e está disposto a arriscar uma exceção em tempo de execução caso esteja errado, então você pode afirmar que o valor não é nulo:
void f(String? s) {
if (s!.length > 3) {
// ...
}
}
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ê.