🎯
【Dart】 コンストラクタの定義位置について
はじめに
メンバ変数宣言の前後どちらでコンストラクタ宣言をするべきなのか疑問を持ったので調査しました。
結論
flutter チームのスタイルガイドによればコンストラクタはクラスの先頭に来る
Good
class Point {
Point(this.x, this.y) : assert(x >= 0 && y >= 0);
final int x;
final int y;
}
BAD
class Point {
final int x;
final int y;
Point(this.x, this.y) : assert(x >= 0 && y >= 0);
}
コンストラクタはクラスの先頭に来る
デフォルト (名前なし) コンストラクターが最初に来て、次に名前付きコンストラクターが来ます。これらは、他のもの (定数や静的メソッドなど) よりも前に来る必要があります。これにより、読者はクラスにデフォルトの暗黙のコンストラクターがあるかどうかを一目で判断できます。コンストラクターがクラス内のどこにでも存在できる場合、読者はクラスのすべての行を調べて、暗黙のコンストラクターがあるかどうかを判断する必要があります
このガイドラインが議論されたIssue
自分はコンストラクタを探さなくても一目でわかるこのガイドラインに乗っかろうと思いました。
Discussion