内容

prefer_constructors_over_static_methods

优先定义构造函数而不是静态方法来创建实例。

此规则从 Dart 2.0 开始提供。

详情

#

**优先**定义构造函数而不是静态方法来创建实例。

在大多数情况下,使用命名构造函数比静态方法更有意义,因为它使实例化更清晰。

错误

dart
class Point {
  num x, y;
  Point(this.x, this.y);
  static Point polar(num theta, num radius) {
    return Point(radius * math.cos(theta),
        radius * math.sin(theta));
  }
}

正确

dart
class Point {
  num x, y;
  Point(this.x, this.y);
  Point.polar(num theta, num radius)
      : x = radius * math.cos(theta),
        y = radius * math.sin(theta);
}

用法

#

要启用 prefer_constructors_over_static_methods 规则,请在 analysis_options.yaml 文件的**linter > 规则**下添加 prefer_constructors_over_static_methods

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_constructors_over_static_methods