prefer_is_empty
对 Iterable
和 Map
使用 isEmpty
。
详情
#不要使用 length
来查看集合是否为空。
Iterable
约定不要求集合知道其长度或能够在常数时间内提供长度。仅仅为了查看集合是否包含任何内容而调用 length
可能会非常慢。
相反,有更快且更易读的 getter:isEmpty
和 isNotEmpty
。使用不需要您对结果取反的那个。
错误示例
dart
if (lunchBox.length == 0) return 'so hungry...';
if (words.length != 0) return words.join(' ');
正确示例
dart
if (lunchBox.isEmpty) return 'so hungry...';
if (words.isNotEmpty) return words.join(' ');
启用
#要启用 prefer_is_empty
规则,请在您的 analysis_options.yaml
文件中的 linter > rules 下添加 prefer_is_empty
analysis_options.yaml
yaml
linter:
rules:
- prefer_is_empty
如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 prefer_is_empty: true
analysis_options.yaml
yaml
linter:
rules:
prefer_is_empty: true
除非另有说明,否则本网站上的文档反映的是 Dart 3.7.1 版本。页面上次更新于 2025-03-07。 查看源代码 或 报告问题。