prefer_contains
'indexOf' が常に -1 以上であるため、常に 'false' になります。
'indexOf' が常に -1 以上であるため、常に 'true' になります。
包含関係をテストするために '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)) {
// ...
}
}