Slackコミュニティに
無料で参加する
Flutterラボの
プレミアム会員になる
【Dart】EnumへのExtensionを使用してインスタンスから文字列を取得する
2020.10.02
はじめに
enumを使用していて、enumの値を文字列として取得したいと思ったことはありませんか?今回はExtensionを使用してそれを実現させたいと思います。
おすすめコンソール
今回はDartPadというDart専用コンソールを使用してテストします。
enumの宣言
enumの宣言はClass内では行えないのでグローバル変数と同じように宣言しましょう。今回は三通りで行います。
enum Type {
A,
B,
C
}
ExtensionをTypeに追加
Extension内でTypeの列挙体をKey、文字列をValueとしたMapを作成します。
extension TypeExtension on Type {
static final typeNames = {
Type.A: 'type A',
Type.B: 'type B',
Type.C: 'type C'
};
}
ゲッターを追加する
getterでは現在の列挙体の値をMapのKeyとして代入することで文字列が帰ります。
extension TypeExtension on Type {
static final typeNames = {
Type.A: 'type A',
Type.B: 'type B',
Type.C: 'type C'
};
String get typeName => typeNames[this];
}
全体図
enum Type {
A,
B,
C
}
extension TypeExtension on Type {
static final typeNames = {
Type.A: 'type A',
Type.B: 'type B',
Type.C: 'type C'
};
String get typeName => typeNames[this];
}
実際にインスタンスから文字列を取得する
enum Type {
A,
B,
C
}
extension TypeExtension on Type {
static final typeNames = {
Type.A: 'type A',
Type.B: 'type B',
Type.C: 'type C'
};
String get typeName => typeNames[this];
}
void main() {
Type type = Type.A;
print(type.typeName);
}
結果
type A
まとめ
Extensionを使用して、列挙体を文字列として使用する方法を紹介しました。データベースなどで列挙体から分岐を行う際に使用できると思います。
Flutterラボ
hatchoutschool
Flutter入門
Flutter初心者に向けて、挫折しないための簡単な内容を記事にしていきます。 (43本)
【Dart】Stringからint, double, DateTimeに変換する
2020.09.14
【Dart】【Flutter】List型(リスト)の使い方とよく使うメソッドまとめ
2020.09.18
【Dart】【Flutter】DateTime型についてのまとめ
2020.10.01
【Dart】Map型の使い方とよく使うメソッドまとめ
2020.09.13