Eu preciso mesmo no final da função getComandos retornar a váriavel "entrada" com a exclamação no final? Se eu retornasse sem a exclamação o que aconteceria? Qual a diferença entre voltar a variável "entrada" com ou sem exclamação?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu preciso mesmo no final da função getComandos retornar a váriavel "entrada" com a exclamação no final? Se eu retornasse sem a exclamação o que aconteceria? Qual a diferença entre voltar a variável "entrada" com ou sem exclamação?
Olá, Alexsandro, como vai?
A variável entrada é declarada como String?, ou seja, admite nulo. Quando você retorna entrada com o operador de exclamação, está dizendo explicitamente ao Dart que aquele valor não será nulo naquele ponto. Sem esse operador, o compilador exige que o retorno seja do tipo String?, já que não há garantia absoluta de que entrada não seja nula.
Se você tentar retornar entrada sem a exclamação, mantendo a função com retorno String, o Dart interrompe a compilação, pois existe a possibilidade teórica de entrada continuar nula. O operador de exclamação é uma forma de assumir essa responsabilidade.
Espero ter ajudado.
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)