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 🍻