Dart 型エイリアス(typedef)

Dar言語StreamクラスtoSet()メソッドDart

Dartの型エイリアス(typedef)についてメモ書き。

Dartでは型に別名を付けて宣言ができる。
別名を付けた型は、型エイリアス(Type Alias)と呼ぶ。「typedef」で宣言する。
公式サイトはこちら

型エイリアスを使うと、配列等に独自の名前を付けられるので用途が明確になる。

コーディングで確認。

// ① Map型に名前用の型エイリアスを設定
typedef nameMap = Map<String, String>;
// ② Map型に地域用の型エイリアスを設定。
typedef regionMap<T> = Map<T, List<T>>;

void main() {
  // ①に値を代入し出力
  nameMap name = {
    "山田": "太郎",
    "安藤": "次郎",
    "田中": "三郎",
  };
  name.forEach((key, value) {
    print('姓:$key 名:$value');
  });

  // ②に値を代入して出力
  regionMap<String> region = {
    "関東": ["東京", "千葉"],
    "東北": ["青森", "秋田"],
  };
  region.forEach((key, value) {
    for (var element in value) {
      print('$key $element');
    }
  });
}

2種類の型エイリアスを書いてみた。
1つ目は名前を管理する型エイリアス。

// ① Map型に名前用の型エイリアスを設定
typedef nameMap = Map<String, String>;

2つ目は地域を管理する型エイリアス。

// ② Map型に地域用の型エイリアスを設定。
typedef regionMap<T> = Map<T, List<T>>;

regionMap<T>の”T”は型パラメータ。例えば以下のように”String”を代入すると、右辺の”T”にStringが代入される。
ジェネリック型を生成する時に使用する。

// ②に値を代入して出力
regionMap<String> region = {

型エイリアスを使う事で”名前”を管理しているMap型なのか、それとも”地域”を管理しているMap型なのか明確になったと思う。

実行結果。

姓:山田 名:太郎
姓:安藤 名:次郎
姓:田中 名:三郎
関東 東京
関東 千葉
東北 青森
東北 秋田

コメント

タイトルとURLをコピーしました