prefer_final_parameters
Prefer final for parameter declarations if they are not reassigned.
Details
#DO prefer declaring parameters as final if they are not reassigned in the function body.
Declaring parameters as final when possible is a good practice because it helps avoid accidental reassignments.
BAD:
dart
void badParameter(String label) { // LINT
print(label);
}GOOD:
dart
void goodParameter(final String label) { // OK
print(label);
}BAD:
dart
void badExpression(int value) => print(value); // LINTGOOD:
dart
void goodExpression(final int value) => print(value); // OKBAD:
dart
[1, 4, 6, 8].forEach((value) => print(value + 2)); // LINTGOOD:
dart
[1, 4, 6, 8].forEach((final value) => print(value + 2)); // OKGOOD:
dart
void mutableParameter(String label) { // OK
print(label);
label = 'Hello Linter!';
print(label);
}Incompatible rules
#The prefer_final_parameters rule is incompatible with the following rules:
Enable
#To enable the prefer_final_parameters rule,
add prefer_final_parameters under linter > rules in your
analysis_options.yaml file:
analysis_options.yaml
yaml
linter:
rules:
- prefer_final_parametersIf you're instead using the YAML map syntax to configure linter rules,
add prefer_final_parameters: true under linter > rules:
analysis_options.yaml
yaml
linter:
rules:
prefer_final_parameters: true