跳到主要内容

prefer_contains

总是 'false',因为 'indexOf' 总是大于等于 -1。

总是 'true',因为 'indexOf' 总是大于等于 -1。

不必要地使用 'indexOf' 来测试是否包含。

描述

#

当使用方法 indexOf 并且其结果仅与 -10 进行比较,且语义等同于使用 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)) {
    // ...
  }
}