目录

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 > rules 下添加 prefer_constructors_over_static_methods

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_constructors_over_static_methods