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

No minuto 14:27 do vídeo deu erro na linha 18

No minuto 14:27 do vídeo deu erro na linha 18. Para corrigir o erro coloquei "!" após "dias", dentro do void mostrarMadura, ficando assim:

mostrarMadura({String? nome, int? dias, String? cor}){
  if (dias!>= 30){
    print("A $nome está madura");
  } else{
    print("A $nome não está madura");
  } 

  if (cor !=null){
    print("A $nome é $cor");
  } 
} 

No vídeo não foi comentado o erro em questão, e Fiz o comando acima com base numa vaga lembrança de uma informação obtida em outra aula de outro curso alura. Gostaria de obter mais informações sobre o caracter "!", e a explicação com detalhes sobre este erro e solução, pois como disse acima é uma vaga lembrança que deu certo , mas não sei o "por trás dos panos" , desde já obrigado

2 respostas
solução!

Ola Thiago, vamos la !

O operador ! em Dart é chamado de "null assertion operator". Ele é usado para indicar ao compilador que uma expressão que pode ser nula não será nula no momento da execução. Quando você coloca ! após uma variável, você está essencialmente dizendo ao compilador: "Confie em mim, isso não será nulo".

a sua definicao dos parametros opcionais é essa :

{String? nome, int? dias, String? cor}

Os parâmetros opcionais marcados com ? indicam que esses parâmetros podem ser null. E voce usou o operador ! dessa forma :

if (dias! >= 30)

Aqui, você está usando o operador ! para dizer ao compilador que dias não será null quando você estiver acessando-o. Isso significa que você está assumindo a responsabilidade de garantir que dias não será null.

Por tras dos panos Quando você declara uma variável como int?, você está dizendo que essa variável pode conter um valor inteiro ou pode ser null. Isso é importante porque permite ao Dart garantir a segurança em relação ao null, evitando erros em tempo de execução conhecidos como "null pointer exceptions".

No entanto, quando você usa dias!, você está dizendo ao compilador para confiar que dias não é null, e se por algum motivo dias for realmente null, o programa lançará uma exceção em tempo de execução.

Entendi Paulo Henrique! Muito obrigado professor!