Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema ao usar o tryParse

Estou usando o Flutter 2.2 (Channel stable, 2.2.2, de acordo com o flutter doctor), mas não sei exatamente qual é a versão do Dart. O problema é que o int.tryParse não está sendo aceito, aparentemente porque o mesmo pode gerar um valor nulo e o final int não aceita isso.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadePesquisando no Stack Overflow link , achei que foi uma reformulação da linguagem. Por hora eu apenas substitui o tryParse por parse e removi o if. Alguma outra sugestão?

2 respostas
solução!

Parece que tudo é protegido contra nulabilidade, então o jeito, se você precisar, é forçar as variáveis a aceitarem valores nulos, como mostrado a seguir:

final int? numeroConta = int.tryParse(controladorCampoNumeroConta.text); final double? valor = double.tryParse(controladorCampoValor.text);

Basta incluir a interrogação na declaração da variável. Isso vai ser muito necessário nos tópicos posteriores, já que tem situações em que algumas variáveis precisam ser nulas.

Fala Gabriel!

Sua resposta está perfeita, é isso mesmo!

Para complementar o conhecimento é válido saber que existe um int.parse() que força o retorno ser int. O risco de usar ele é justamente que se você tiver algo que não seja um inteiro lá, ele vai subir um FormatError.

Uma solução elegante, caso você queira padronizar o null para um número, como 0, seria usar um operador ternário dessa forma:

String source = "Não sou um número";
int number = int.tryParse(source) != null ? int.parse(source) : 0;

No mais é isso, parabéns por ter resolvido sozinho e siga firme nos estudos! Qualquer coisa, estamos aqui!