avoid_redundant_argument_values
避免冗餘的引數值。
詳情
#不要傳遞與對應引數的預設值匹配的引數。
請注意,方法覆蓋可以更改引數的預設值,因此引數可能與一個預設值相等,但不與另一個相等。例如,有兩個類 A 和 B,其中 B 是 A 的子類,並且 B 覆蓋了在 A 中宣告的方法,該方法在 A 的宣告中有一個預設值,而在 B 的宣告中有另一個不同的預設值。如果呼叫方法的目標的靜態型別是 B,並且 B 的預設值與引數匹配,則可以省略該引數(如果引數值不同,則不會報告 lint)。但是,如果呼叫方法的目標的靜態型別是 A,則可能會報告 lint,但我們無法靜態地知道呼叫了哪個方法,因此報告的 lint 可能是誤報。可以在行內使用註釋 // ignore: avoid_redundant_argument_values 來忽略此類情況。
糟糕
dart
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: true);
}好
dart
void f({bool valWithDefault = true, bool? val}) {
...
}
void main() {
f(valWithDefault: false);
f();
}啟用
#要啟用 avoid_redundant_argument_values 規則,請在您的 analysis_options.yaml 檔案中,在 linter > rules 下新增 avoid_redundant_argument_values。
analysis_options.yaml
yaml
linter:
rules:
- avoid_redundant_argument_values如果您正在使用 YAML 對映語法配置 linter 規則,請在 linter > rules 下新增 avoid_redundant_argument_values: true。
analysis_options.yaml
yaml
linter:
rules:
avoid_redundant_argument_values: true