prefer_initializing_formals
盡可能使用初始化形式參數。
詳細資訊
#請務必盡可能使用初始化形式參數。
盡可能使用初始化形式參數可以讓你的程式碼更簡潔。
不良範例
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
如果你改用 YAML map 語法來設定 linter 規則,請在 linter > rules 下新增 prefer_initializing_formals: true
analysis_options.yaml
yaml
linter:
rules:
prefer_initializing_formals: true
除非另有說明,否則本網站上的文件反映 Dart 3.7.1 版本。頁面最後更新於 2025-03-07。 檢視原始碼 或 回報問題。