とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

名前付きコンストラクタ (Named constructor)

コンストラクタに名前を付けて意図を明確にできる。

class MyDate
{
  int year;
  int month;
  int day;

  MyDate(this.year, this.month, this.day);
  // 名前付きコンストラクタ
  MyDate.newYearsDay(this.year)
   : month = 1, day = 1;

  String toString() => '' + year + '/' + month + '/' + day;
}

main() {
  // 名前付きコンストラクタ
  final MyDate date = new MyDate.newYearsDay(2011);
  print(date);
}
/*
2011/1/1
*/

名前付きコンストラクタはコアライブラリの Date でも使われている。通常のコンストラクタの他にDate.now(), Date.fromString(String formattedString), Date.fromEpoch(int value, TimeZone timeZone) という名前付きコンストラクタがある。
Dart : Libraries : corelib : Date : Dart : Structured web programming