5

O pequeno grande ganho do enum no Dart 2.15

 2 years ago
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.
neoserver,ios ssh client
Cover image for O pequeno grande ganho do enum no Dart 2.15
Kauê Martins

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

stackoverflow-logo-b42691ae545e4810b105ee957979a853a696085e67e43ee14c5699cf3e890fb4.svg

Apr 10 '15 Comments: 4 Answers: 26

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…


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK