Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Error: A value of type 'Transferencia?' can't be assigned to a variable of type 'Transferencia' because 'Transferencia?' is nullable and 'Transferencia' isn't.

Obtive esta mensagem ao tentar criar a lista e foi resolvido colocando um ! (ponto de exclamação) na atribuição da variável transferencia, dentro do ListView.buider:

body: ListView.builder(
        itemCount: _transferencias.length,
        itemBuilder: (context, indice) {
          final Transferencia transferencia = _transferencias[indice]!; // aqui o ! no final da atribuição
          return ItemTransferencia(transferencia);
        },
      ),

Minha dúvida é simples, eu acho. O que esse ! faz?

1 resposta
solução!

Ola Dogleicd,

veja o seguinte codigo

void main() {
    int? x;
    if(x > 10) { // ?????
        print(x);
    }
}

Aqui é criada uma variavel nullable, ou seja, ela pode receber valores nulos, logo o dart identificará que a comparação no if é invalida, pois ele não tem certeza se x é igual a nulo. Para "forçar" o dart a compilar, voce coloca o !, mesmo que não exista de fato um valor em x. Mas, veja que o x será subistituido em tempo de compilação pela seguinte afirmativa:

void main() {
    int? x;
    if(x! > 10) { // x != null ? x : throw Exception()
        print(x);
    }
}

Assim, o uso da ! é como se você dissesse ao seu compilador, eu garanto que o int? x não é nulo , caso não, lance exceção

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software