拡張メソッドを使い、Enumからgetterで文字列を取得します。
void main() {
final picachu = Pokemon.picachu;
print(picachu.name); // ぴかちゅー
}
enum Pokemon {
picachu,
hitokage,
zenigame,
hushigidane,
}
extension PokemonExtension on Pokemon {
String get name {
switch (this) {
case Pokemon.picachu:
return 'ぴかちゅー';
case Pokemon.hitokage:
return 'ひとかげ';
case Pokemon.zenigame:
return 'ぜにがめ';
case Pokemon.hushigidane:
return 'ふしぎだね';
}
}
}
getterを他にも用意すれば、文字列以外も取得することができます。
void main() {
final picachu = Pokemon.picachu;
print(picachu.name); // ぴかちゅー
print(picachu.bookIndex); // 25
print(picachu.type); // <meta charset="utf-8">Type.electric
}
enum Pokemon {
picachu,
hitokage,
zenigame,
hushigidane,
}
enum Type {
fire,
water,
grass,
electric,
}
extension PokemonExtension on Pokemon {
String get name {
switch (this) {
case Pokemon.picachu:
return 'ぴかちゅー';
case Pokemon.hitokage:
return 'ひとかげ';
case Pokemon.zenigame:
return 'ぜにがめ';
case Pokemon.hushigidane:
return 'ふしぎだね';
}
}
int get bookIndex {
switch (this) {
case Pokemon.picachu:
return 025;
case Pokemon.hitokage:
return 004;
case Pokemon.zenigame:
return 007;
case Pokemon.hushigidane:
return 001;
}
}
Type get type {
switch (this) {
case Pokemon.picachu:
return Type.electric;
case Pokemon.hitokage:
return Type.fire;
case Pokemon.zenigame:
return Type.water;
case Pokemon.hushigidane:
return Type.grass;
}
}
}