Dans Java lorsque vous définissez une énumération, vous pouvez faire quelque chose de semblable au suivant. Est-ce possible dans Dart?
enum blah {
one(1), two(2);
final num value;
blah(this.value);
}
Les énumérations de fléchettes sont utilisées uniquement pour les cas les plus simples. Si vous avez besoin d'énumérations plus puissantes ou plus flexibles, utilisez des classes avec des champs const statiques comme indiqué dans https://stackoverflow.com/a/15854550/217408
De cette façon, vous pouvez ajouter tout ce dont vous avez besoin.
Nan. Dans Dart, les énumérations ne peuvent contenir que les éléments énumérés:
enum Color {
red,
green,
blue
}
Cependant, chaque élément de l'énumération est automatiquement associé à un numéro d'index:
print(Color.red.index); // 0
print(Color.green.index); // 1
Vous pouvez obtenir les valeurs par leurs numéros d'index:
print(Color.values[0] == Color.red); // True
Voir: https://www.dartlang.org/guides/language/language-tour#enums
Ce n'est peut-être pas "Effective Dart", j'ajoute une méthode statique à l'intérieur d'une classe Helper (il n'y a pas d'objet compagnon dans Dart).
Dans ton color.Dart
fichier
enum Color {
red,
green,
blue
}
class ColorHelper{
static String getValue(Color color){
switch(color){
case Color.red:
return "Red";
case Color.green:
return "Green";
case Color.blue:
return "Blue";
default:
return "";
}
}
}
Étant donné que la méthode se trouve dans le même fichier que l'énumération, une seule importation suffit
import 'package:.../color.Dart';
...
String colorValue = ColorHelper.getValue(Color.red);