prefer_ is_ empty
Learn about the prefer_is_empty linter rule.
Use isEmpty for Iterables and
Maps.
Details
#
DON'T use length to see if a
collection is empty.
The Iterable contract does not require that a
collection know its length or be able to provide it in
constant time. Calling length just to see if the
collection contains anything can be painfully slow.
Instead, there are faster and more readable getters:
isEmpty and isNotEmpty. Use the one
that doesn't require you to negate the result.
BAD:
if (lunchBox.length == 0) return 'so hungry...';
if (words.length != 0) return words.join(' ');
GOOD:
if (lunchBox.isEmpty) return 'so hungry...';
if (words.isNotEmpty) return words.join(' ');
Enable
#
To enable the prefer_is_empty rule, add
prefer_is_empty under
linter > rules in your
analysis_options.yaml
file:
linter:
rules:
- prefer_is_empty
If you're instead using the YAML map syntax to configure
linter rules, add prefer_is_empty: true under
linter > rules:
linter:
rules:
prefer_is_empty: true
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.