prefer_contains
总是 'false',因为 'indexOf' 总是大于等于 -1。
总是 'true',因为 'indexOf' 总是大于等于 -1。
不必要地使用 'indexOf' 来测试是否包含。
描述
#当使用方法 indexOf
并且其结果仅与 -1
或 0
进行比较,且语义等同于使用 contains
时,分析器会生成此诊断消息。
示例
#以下代码会生成此诊断消息,因为 if
语句中的条件正在检查列表是否包含该字符串
dart
void f(List<String> l, String s) {
if (l.indexOf(s) < 0) {
// ...
}
}
常见修复方法
#改为使用 contains
,必要时否定条件
dart
void f(List<String> l, String s) {
if (l.contains(s)) {
// ...
}
}