Dart constructors
Dart言語のConstrucotrの種類はJavaと比べると記載方法が格段に多いです。
覚えることが多い反面、覚えて書くととてもスマートに書ける箇所です。
個人的にDartの個性が存分に出ている素晴らしい箇所だと感じます。
Javaライクなオーソドックスな書き方
class Constructor {
int a;
int b;
// コンストラクタ
Constructor(int a, int b) {
this.a = a;
this.b = b;
}
}
Javaで見慣れた書き方だと思います。あまり特徴はないです。
省略した書き方
class Constructor {
int a;
int b;
// コンストラクタ
Constructor(this.a, this.b);
}
コンストラクタに直でthisを書ける方式です。これでインスタンス変数に設定されます。(画期的)
名前つきのコンストラクタ
class Constructor {
int a;
int b;
// コンストラクタ
Constructor(this.a, this.b);
// 名前つきコンストラクタ
Constructor.origin() {
a = 0;
b = 0;
}
}
凄く新しい書き方だと思います。コンストラクで何をやりたいか名前つけて判別できる優しい書き方だと思います。
リダイレクトコンストラクタ
class Constructor {
int a;
int b;
// コンストラクタ
Constructor(this.a, this.b);
// 名前つきコンストラクタ
Constructor.redirect():this(0,0);
}
他のコンストラクタの書き方がスマートですよね!{}の記載が不要なので1行で書けます!
他にFactoryやCostantもあります!奥が深い、、、