TOP(About this memo)) > 一覧(Dart) > 列挙型
void main () {
print(E1.values);
print(E1.values.byName("A"));
print(E1.A.name);
//[E1.A, E1.B]
//E1.A
//A
}
enum E1 {
A(1),
B(2);
final int f1;// finalである必要がある。
const E1(this.f1);// constである必要がある。
}
/*
enum E2 {
A(DateTime.now());// constではない値を使うことはできない。
final DateTime f1;
const E2(this.f1);
}
*/
enum FriendStatus {
notFriend,
friend,
}
if (status == FriendStatus.notFriend) {
// ...
} else {
// ...
}
// こちらの場合は網羅性を担保できる。
switch (status) {
case FriendStatus.notFriend:
// ...
case FriendStatus.friend:
// ...
// もしFriendStatusに新しい値が追加された場合に、コンパイルエラーとして修正箇所を把握できる。
}
enum MyEnum {
a(10),
b(20);
const MyEnum(this.code);
static MyEnum byCode(int code) {
return MyEnum.values.where((rt) => rt.code == code).toList().first;
}
final int code;
}