import 'dart:io';
void main() {
  print("Digite o primeiro número:");
  double numeroUm = double.parse(stdin.readLineSync()!);
  print("Escolha a operação (+, -, *, /):");
  String operacao = stdin.readLineSync()!;
  print("Digite o segundo número:");
  double numeroDois = double.parse(stdin.readLineSync()!);
  // Mapa com as operações
  Map<String, Function(double, double)> operacoes = {
    '+': (a, b) => a + b, // Soma
    '-': (a, b) => a - b, // Subtração
    '*': (a, b) => a * b, // Multiplicação
    '/': (a, b) => b != 0 ? a / b : double.nan, // Operação de divição e trata divisão por zero
  };
  // Validação e execução
  if (operacoes.containsKey(operacao)) {
    double resultado = operacoes[operacao]!(numeroUm, numeroDois);
    if (resultado.isNaN) {
      print("Erro: divisão por zero!");
    } else {
      print("Resultado: $resultado");
    }
  } else {
    print("Operação inválida!");
  }
}
Creio que assim o código fica ainda mais limpo e de fácil entendimento
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!