collection_methods_unrelated_type
使用不相关类型的参数调用各种集合方法。
此规则从 Dart 2.19 开始可用。
规则集:core、recommended、flutter
详情
#不要使用不相关类型的参数调用某些集合方法。
这样做会在集合的元素上调用 ==
,并且很可能会返回 false
。
传递给集合方法的参数应与集合类型相关,如下所示
- 传递给
Iterable<E>.contains
的参数应与E
相关 - 传递给
List<E>.remove
的参数应与E
相关 - 传递给
Map<K, V>.containsKey
的参数应与K
相关 - 传递给
Map<K, V>.containsValue
的参数应与V
相关 - 传递给
Map<K, V>.remove
的参数应与K
相关 - 传递给
Map<K, V>.[]
的参数应与K
相关 - 传递给
Queue<E>.remove
的参数应与E
相关 - 传递给
Set<E>.lookup
的参数应与E
相关 - 传递给
Set<E>.remove
的参数应与E
相关
错误
dart
void someFunction() {
var list = <int>[];
if (list.contains('1')) print('someFunction'); // LINT
}
错误
dart
void someFunction() {
var set = <int>{};
set.remove('1'); // LINT
}
正确
dart
void someFunction() {
var list = <int>[];
if (list.contains(1)) print('someFunction'); // OK
}
正确
dart
void someFunction() {
var set = <int>{};
set.remove(1); // OK
}
用法
#要启用 collection_methods_unrelated_type
规则,请在你的 analysis_options.yaml
文件中的 linter > rules 下添加 collection_methods_unrelated_type
。
analysis_options.yaml
yaml
linter:
rules:
- collection_methods_unrelated_type
除非另有说明,否则本网站上的文档反映的是 Dart 3.6.0。页面上次更新于 2024-07-03。查看源代码或报告问题。