prefer_contains 진단: indexOf로 포함 여부를 확인할 때는 contains를 쓸 때
prefer_contains 진단: indexOf로 포함 여부를 확인할 때는 contains를 쓸 때
indexOf의 결과를 -1이나 0과 비교해서 어떤 값이 들어 있는지 확인하는 코드에 Dart 분석기가 알려주는 린트(lint) 진단이에요. 포함 여부를 묻는 거라면 contains가 의도를 훨씬 분명하게 전달해요.
출처: prefer_contains
본문
설명
분석기는 indexOf 메서드를 사용하면서 그 결과를 -1이나 0과 비교하는데, 그 의미가 contains를 쓰는 것과 같을 때 이 진단을 만들어요.
예시
다음 코드는 if 문의 조건이 list가 그 문자열을 포함하는지 확인하고 있어서 이 진단을 만들어요.
void f(List<String> l, String s) {
if (l.indexOf(s) < 0) {
// ...
}
}
흔한 해결 방법
대신 contains를 사용하고, 필요하면 조건을 부정하면 돼요.
void f(List<String> l, String s) {
if (l.contains(s)) {
// ...
}
}