O pequeno grande ganho do enum no Dart 2.15
source link: https://dev.to/kmartins/o-pequeno-grande-ganho-do-enum-no-dart-215-516
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Posted on Dec 23
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}');
Enter fullscreen mode
Exit fullscreen mode
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}');
Enter fullscreen mode
Exit fullscreen mode
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 🍻
Links úteis
Before enums were available in Dart I wrote some cumbersome and hard to maintain code to simulate enums and now want to simplify it. I need to get the value of the enum as a string such as can be done with Java but cannot.
For instance little test code…
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK