no_ self_ assignments
Learn about the no_self_assignments linter rule.
Don't assign a variable to itself.
Details
#DON'T assign a variable to itself. Usually this is a mistake.
BAD:
class C {
int x;
C(int x) {
x = x;
}
}
GOOD:
class C {
int x;
C(int x) : x = x;
}
GOOD:
class C {
int x;
C(int x) {
this.x = x;
}
}
BAD:
class C {
int _x = 5;
int get x => _x;
set x(int x) {
_x = x;
_customUpdateLogic();
}
void _customUpdateLogic() {
print('updated');
}
void example() {
x = x;
}
}
GOOD:
class C {
int _x = 5;
int get x => _x;
set x(int x) {
_x = x;
_customUpdateLogic();
}
void _customUpdateLogic() {
print('updated');
}
void example() {
_customUpdateLogic();
}
}
BAD:
class C {
int x = 5;
void update(C other) {
this.x = this.x;
}
}
GOOD:
class C {
int x = 5;
void update(C other) {
this.x = other.x;
}
}
Enable
#
To enable the no_self_assignments rule, add
no_self_assignments under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- no_self_assignments
If you're instead using the YAML map syntax to configure
linter rules, add no_self_assignments: true under
linter > rules:
linter:
rules:
no_self_assignments: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.