prefer_initializing_formals
儘可能使用初始化形參。
詳情
#請儘可能使用初始化形參。
儘可能使用初始化形參可以讓你的程式碼更簡潔。
BAD
dart
class Point {
num? x, y;
Point(num x, num y) {
this.x = x;
this.y = y;
}
}GOOD
dart
class Point {
num? x, y;
Point(num this.x, num this.y);
}BAD
dart
class Point {
num? x, y;
Point({num? x, num? y}) {
this.x = x;
this.y = y;
}
}GOOD
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
}
}注意:另請注意,可以使用初始化形參強制執行比初始化欄位更嚴格的型別。在以下示例中,儘管 amount 被宣告為可空 (int?),但未命名的 Bid 建構函式需要一個非空的 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 對映語法配置 linter 規則,請在 linter > rules 下新增 prefer_initializing_formals: true
analysis_options.yaml
yaml
linter:
rules:
prefer_initializing_formals: true