目錄

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 建構函式需要非 null 的 int,儘管 amount 被宣告為可為 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