Até o momento dessa aula, estou fazendo o projeto 'notas' juntamente com o professor. Percebi que na função 'getComando()', do jeito que ela foi criada para tratar um erro do usuário com o uso da recursividade, está dando um problema que é o de que se eu errar o comando e ele voltar para eu acertar, quando eu acerto é como se ele tivesse carregando o valor anterior na variável, e quando ele vai para o switch-case da função 'menu', não tá entrando em nenhum dos cases. Então, eu mudei o tratamento de erro na função 'getComando()', pois ao invés de usar recursividade, eu usei um laço de repetição (do - while) e o programa só vai sair quando o usuário digitar uma das opções e o valor que sai da função vai ser o último digitado pelo usuário e deu certo assim. Ainda vou assistir os outros vídeos do professor e ver se ele comenta sobre isso. Vou colocar a minha função 'getCOmando()' com a alteração que fiz e eu comentei no código o trecho que tem o tratamento com a recursividade.
String getComando() {
String? entrada;
List<String> comandos = ['1', '2', '3'];
do{
print('Digite um comando: 1 - Adicionar nota, 2 - Listar notas, 3 - Sair');
entrada = stdin.readLineSync();
} while (entrada == null || !comandos.contains(entrada));
/*
if (entrada == null || !comandos.contains(entrada)) {
print('Comando inválido');
getComando();
}*/
return entrada;
}