Swithch Matrix em Dart 3

Tempo de leitura: < 1 minute

Desde o Dart 3, você pode combinar várias variáveis em um registro e substituir as cadeias if-else por uma expressão switch.

Isso é conhecido como matriz de alternância e permite aplicar correspondência de padrão a vários valores de uma só vez.

Forma Antiga

enum ConnectionState { none, waiting, active, donw }

String getStatus(ConnectionStatus state, bool hasData, bool hasError) {

  if(state == Connection.waiting) {
    return 'Loading';
  } else if (hasData) {
    return 'Got data';
  } else if (hasError) {
    return 'Got error';
  } else {
    return 'Unknow status';
  }

}

Forma Nova

enum ConnectionState { none, waiting, active, donw }

String getStatus(ConnectionStatus state, bool hasData, bool hasError) {

  final status = (status, hasData, hasError);   <<<<< 'Combinar valores dentro de um registro'
  return swith (status) {
   (ConnectionState.waiting, _, _) => 'Loading',
   (_, true, _) => 'Got data',
   (_, _, true) => 'Got error',  >>>>>> 'Reescrever a lógica condicional como uma expressão switch'
   _ => 'Unknow status',
  };

}

 

Não deixe de conhecer meus Ebooks de Flutter/Dart