Ne Dart soutien énumérations? Par exemple:
enum myFruitEnum { Apple, Banana }
Une fouille superficielle de la documentation suggère pas.
Ne Dart soutien énumérations? Par exemple:
enum myFruitEnum { Apple, Banana }
Une fouille superficielle de la documentation suggère pas.
Personnellement, je préfère cette approche sur Alexandre:
class Fruit {
static const APPLE = const Fruit._(0);
static const BANANA = const Fruit._(1);
static get values => [APPLE, BANANA];
final int value;
const Fruit._(this.value);
}
La raison en est que ces constantes statiques dans la classe à la compilation des constantes de temps, et cette classe peuvent maintenant être utilisées, par exemple, switch
déclarations:
var a = Fruit.APPLE;
switch (a) {
case Fruit.APPLE:
print('Yes!');
break;
}
L'autre approche ne fonctionne pas dans les cas de ce genre et il fait moins de sens pour moi non constant version de celui-ci.
J'ai utiliser ce formulaire jusqu'à ce que les agents recenseurs arriver dans Dart.
L'énumération devrait être disponible dans le futur. Mais jusqu'à ce Enum a atterri vous pouvez faire quelque chose comme :
class Fruit {
static final APPLE = new Fruit._();
static final BANANA = new Fruit._();
static get values => [APPLE, BANANA];
Fruit._();
}
Ce et ce peut être les réponses à votre question:
... for the technology preview it was decided to leave it out and just
use static final fields for now. It may be added later.
Vous pouvez toujours faire quelque chose comme ceci:
interface ConnectionState { }
class Connected implements ConnectionState { }
class Connecting implements ConnectionState { }
class Disconnected implements ConnectionState { }
//later
ConnectionState connectionState;
if (connectionState is Connecting) { ... }
ce qui est à mon avis plus clair pour une utilisation. C'est un peu plus difficile pour la programmation de la structure de l'application, mais dans certains cas, il est préférable et clair.
comment au sujet de cette approche:
class FruitEnums {
static const String Apple = "Apple";
static const String Banana = "Banana";
}
class EnumUsageExample {
void DoSomething(){
var fruit = FruitEnums.Apple;
String message;
switch(fruit){
case(FruitEnums.Apple):
message = "Now slicing $fruit.";
break;
default:
message = "Now slicing $fruit via default case.";
break;
}
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.