内容

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 构造函数需要一个非空 int,尽管 amount 被声明为可空 (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