no_ leading_ underscores_ for_ local_ identifiers
Learn about the no_leading_underscores_for_local_identifiers linter rule.
Avoid leading underscores for local identifiers.
Details
#
DON'T use a leading underscore for
identifiers that aren't private. Dart uses a leading
underscore in an identifier to mark members and top-level
declarations as private. This trains users to associate a
leading underscore with one of those kinds of declarations.
They see _ and think "private". There is no
concept of "private" for local variables or parameters. When
one of those has a name that starts with an underscore, it
sends a confusing signal to the reader. To avoid that, don't
use leading underscores in those names.
EXCEPTION:: An unused parameter can be named
_, __, ___, etc. This
is common practice in callbacks where you are passed a value
but you don't need to use it. Giving it a name that consists
solely of underscores is the idiomatic way to indicate that
the value isn't used.
BAD:
void print(String _name) {
var _size = _name.length;
...
}
GOOD:
void print(String name) {
var size = name.length;
...
}
OK:
[1,2,3].map((_) => print('Hello'));
Enable
#
To enable the
no_leading_underscores_for_local_identifiers
rule, add
no_leading_underscores_for_local_identifiers
under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- no_leading_underscores_for_local_identifiers
If you're instead using the YAML map syntax to configure
linter rules, add
no_leading_underscores_for_local_identifiers: true
under linter > rules:
linter:
rules:
no_leading_underscores_for_local_identifiers: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.