初期化フォームの優先 | prefer_initializing_formals
可能な場合は初期化フォームを使用してください。
このルールはDart 2.0以降で利用可能です。
このルールにはクイックフィックスが用意されています。
詳細
#してください: 可能な場合は初期化フォームを使用してください。
可能な限り初期化フォームを使用することで、コードがより簡潔になります。
悪い例
class Point {
num? x, y;
Point(num x, num y) {
this.x = x;
this.y = y;
}
}
良い例
class Point {
num? x, y;
Point(num this.x, num this.y);
}
悪い例
class Point {
num? x, y;
Point({num? x, num? y}) {
this.x = x;
this.y = y;
}
}
良い例
class Point {
num? x, y;
Point({required num this.x, required num this.y});
}
注: このルールは、パラメータ名とフィールド名が同じでない限り、名前付きパラメータのlintを生成しません。これは、このようなlintを解決するには、フィールドの名前変更またはパラメータの名前変更のいずれかが必要になり、どちらのアクションも破壊的な変更になる可能性があるためです。たとえば、以下のコードはlintを生成しません。
class Point {
bool? isEnabled;
Point({bool? enabled}) {
this.isEnabled = enabled; // OK
}
}
注: また、初期化フォームパラメータを使用して、初期化されたフィールドよりも厳密な型を強制することが可能です。以下の例では、名前のない`Bid`コンストラクタは、`amount`がnull許容型(`int?`)として宣言されているにもかかわらず、nullでない`int`を必要とします。
class Bid {
final int? amount;
Bid(int this.amount);
Bid.pass() : amount = null;
}
使用方法
#`prefer_initializing_formals`ルールを有効にするには、`analysis_options.yaml`ファイルの**linter > rules**の下に`prefer_initializing_formals`を追加します。
linter:
rules:
- prefer_initializing_formals
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。ページの最終更新日: 2024-07-03. ソースを表示 または 問題を報告する。