avoid_function_literals_in_foreach_calls 규칙: forEach 호출에서 함수 리터럴 피하기

avoid_function_literals_in_foreach_calls 규칙: forEach 호출에서 함수 리터럴 피하기

avoid_function_literals_in_foreach_callsforEach 호출에 함수 리터럴(function literal)을 쓰지 말라고 알려주는 린트(lint) 규칙이에요. 목록을 순회할 때는 forEach보다 for 루프가 의도를 더 명확하고 정확하게 드러내요.

출처: avoid_function_literals_in_foreach_calls

본문

설명

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 > rulesavoid_function_literals_in_foreach_calls를 추가해요.

linter:
  rules:
    - avoid_function_literals_in_foreach_calls

YAML map 문법으로 린터 규칙을 설정한다면 linter > rulesavoid_function_literals_in_foreach_calls: true를 추가해요.

linter:
  rules:
    avoid_function_literals_in_foreach_calls: true

더 알아보기