1
resposta

[Dúvida] Definir qual Enum será verificado utilizando entrada de dados do teclado.

Tentei utilizar a entrada de dados do teclado para definir qual dos Enums estaria escolhendo para fazer a verificação non switch, no entanto não consegui utilizar a entrada de dados para fazer essa commparação.

Exemplo:

Solicitei que fosse digitado o tipo de transporte e respondi "carro". Este dado coloquei em uma variável.

Mas não encontrei um jeito do programa entender que o dado desta variável faria referência a uma das opções armazenadas no Enum.

Existe alguma forma de fazer esta comparação?

1 resposta

Olá Edison,

Para fazer a comparação entre a entrada de dados do teclado e o Enum, você pode utilizar o método values do Enum, que retorna uma lista com todos os valores do Enum. Em seguida, você pode percorrer essa lista e comparar cada valor com a entrada de dados.

Segue um exemplo de como fazer isso:

import 'dart:io';

enum Transporte { CARRO, AVIAO, BARCO }

void main() {
  print('Digite o tipo de transporte:');
  String entrada = stdin.readLineSync()!;
  
  for (var transporte in Transporte.values) {
    if (entrada.toUpperCase() == transporte.toString()) {
      print('Transporte escolhido: $transporte');
      break;
    }
  }
}

Nesse exemplo, a entrada de dados é armazenada na variável entrada. Em seguida, percorremos todos os valores do Enum Transporte utilizando o método values. Para cada valor, comparamos com a entrada de dados utilizando o método toString e convertemos a entrada de dados para maiúsculo utilizando o método toUpperCase. Quando encontramos um valor que é igual à entrada de dados, imprimimos o valor do transporte escolhido.

Espero ter ajudado e bons estudos!