目次

初期化フォームの優先 | prefer_initializing_formals

可能な場合は初期化フォームを使用してください。

このルールはDart 2.0以降で利用可能です。

ルールセット: 推奨, flutter

このルールにはクイックフィックスが用意されています。

詳細

#

してください: 可能な場合は初期化フォームを使用してください。

可能な限り初期化フォームを使用することで、コードがより簡潔になります。

悪い例

dart
class Point {
  num? x, y;
  Point(num x, num y) {
    this.x = x;
    this.y = y;
  }
}

良い例

dart
class Point {
  num? x, y;
  Point(num this.x, num this.y);
}

悪い例

dart
class Point {
  num? x, y;
  Point({num? x, num? y}) {
    this.x = x;
    this.y = y;
  }
}

良い例

dart
class Point {
  num? x, y;
  Point({required num this.x, required num this.y});
}

注: このルールは、パラメータ名とフィールド名が同じでない限り、名前付きパラメータのlintを生成しません。これは、このようなlintを解決するには、フィールドの名前変更またはパラメータの名前変更のいずれかが必要になり、どちらのアクションも破壊的な変更になる可能性があるためです。たとえば、以下のコードはlintを生成しません。

dart
class Point {
  bool? isEnabled;
  Point({bool? enabled}) {
    this.isEnabled = enabled; // OK
  }
}

注: また、初期化フォームパラメータを使用して、初期化されたフィールドよりも厳密な型を強制することが可能です。以下の例では、名前のない`Bid`コンストラクタは、`amount`がnull許容型(`int?`)として宣言されているにもかかわらず、nullでない`int`を必要とします。

dart
class Bid {
  final int? amount;
  Bid(int this.amount);
  Bid.pass() : amount = null;
}

使用方法

#

`prefer_initializing_formals`ルールを有効にするには、`analysis_options.yaml`ファイルの**linter > rules**の下に`prefer_initializing_formals`を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_initializing_formals