`for_in_of_invalid_type`: for-in 루프의 대상이 Iterable이 아니에요

for_in_of_invalid_type: for-in 루프의 대상이 Iterable이 아니에요

Dart 분석기가 내는 for_in_of_invalid_type 진단에 대해 알아볼게요. for-in 루프에서 in 뒤에 오는 표현식의 타입이 Iterable의 서브클래스가 아니면 이 진단이 나와요.

출처: for_in_of_invalid_type

본문

for-in 루프에서 in 뒤에 오는 표현식의 타입이 Iterable의 서브클래스가 아니면 분석기가 이 진단을 만들어요.

예시

다음 코드는 mMap인데, MapIterable의 서브클래스가 아니기 때문에 이 진단을 만들어요.

void f(Map<String, String> m) {
  for (String s in m) {
    print(s);
  }
}

자주 쓰는 해결 방법

표현식을 iterable 값을 만들어 내는 것으로 바꾸면 돼요.

void f(Map<String, String> m) {
  for (String s in m.values) {
    print(s);
  }
}

더 알아보기