跳到主要內容

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)) {
    // ...
  }
}