avoid_function_literals_in_foreach_calls 규칙: forEach 호출에서 함수 리터럴 피하기
avoid_function_literals_in_foreach_calls 규칙: forEach 호출에서 함수 리터럴 피하기
avoid_function_literals_in_foreach_calls는 forEach 호출에 함수 리터럴(function literal)을 쓰지 말라고 알려주는 린트(lint) 규칙이에요. 목록을 순회할 때는 forEach보다 for 루프가 의도를 더 명확하고 정확하게 드러내요.
본문
설명
forEach와 함께 함수 리터럴을 쓰지 마세요.
for 루프는 개발자가 자신의 의도를 명확하고 정확하게 드러낼 수 있게 해줘요. for 루프 본문에서의 return은 함수 본문 전체에서 반환되지만, forEach 클로저 본문에서의 return은 그 forEach의 해당 반복 하나에만 값을 반환할 뿐이에요. 또 for 루프 본문은 await를 쓸 수 있지만 forEach의 클로저 본문은 await를 쓸 수 없어요.
BAD:
people.forEach((person) {
...
});
GOOD:
for (var person in people) {
...
}
활성화
avoid_function_literals_in_foreach_calls 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules에 avoid_function_literals_in_foreach_calls를 추가해요.
linter:
rules:
- avoid_function_literals_in_foreach_calls
YAML map 문법으로 린터 규칙을 설정한다면 linter > rules에 avoid_function_literals_in_foreach_calls: true를 추가해요.
linter:
rules:
avoid_function_literals_in_foreach_calls: true