O pequeno grande ganho do enum no Dart 2.15

O pequeno grande ganho do enum no Dart 2.15

Como sabemos o enum no Dart tem limitações se comparado com outras linguagens 🙄, como exemplo, não podemos declarar membros e antes que se pergunte, sim, já temos essa solicitação em andamento, veja a issue para acompanhar.

Outro ponto é que não havia uma forma de obter a String de um valor do enum.

Antes para conseguir esse "feito", era necessário, por exemplo, usar as extensions:

enum Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday }

extension on Day {
  String get toShortString => toString().split('.').last;
}

print('It\'s ${Day.friday.toShortString}');

No Flutter ainda há um método chamado describeEnum que faz o mesmo, leia a documentação para saber mais 📖
Porém, aconselho a usar a forma que irei descrever adiante.

Agora no 2.15 🙏

Fazendo o mesmo uso das extensions acima, a equipe do Dart implementou alguns métodos visando melhorar a forma de se obter e trabalhar com essa String, eles são demonstrados abaixo:

enum Day { monday, tuesday, wednesday, thursday, friday, saturday, sunday }

print('It\'s ${Day.friday.name}');
print('It\'s ${Day.values.byName('monday').name}');
final enumMap = Day.values.asNameMap();
print('It\'s ${enumMap['sunday']?.name}');

Ae sim, bem melhor 🙌

Sabemos que ainda faltam melhorias, mas vamos aguardar os próximos capítulos 🕥

Bom já sabe neh?! Se curtiu, deixe um like, dá aquela compartilhada com outros devs e me segue nas redes sociais 🍻