불필요한 람다 규칙

불필요한 람다 규칙 (unnecessary_lambdas)

메서드나 함수를 그대로 넘기면 될 자리에 굳이 람다로 한 번 더 감싸고 있진 않은지 알려 주는 린트 규칙이에요. "떼어내기(tear-off)"라는 표현을 쓰는데, 함수명만 써서 그 함수 자체를 값처럼 넘기는 걸 말해요. 코드가 불필요하게 장황해지는 걸 막아 주거든요.

출처: unnecessary_lambdas

본문

떼어내기(tear-off)로 충분한데 람다를 만들지 마세요.

예를 들어 names.forEach(...) 안에서 print를 호출한다고 해 볼게요. 람다로 감싸면 이렇게 되지만,

names.forEach((name) {
  print(name);
});

사실은 print라는 함수를 그대로 넘기면 훨씬 깔끔해요.

names.forEach(print);

중간에 다른 로직이 없고 단순히 같은 인자를 그대로 넘기는 거라면, 람다보다는 tear-off가 더 명확하고 간결하답니다.

활성화하기

unnecessary_lambdas 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 unnecessary_lambdas를 추가하면 돼요.

linter:
  rules:
    - unnecessary_lambdas

린트 규칙을 설정할 때 YAML 맵 문법을 쓰고 있다면, linter > rules 아래에 unnecessary_lambdas: true처럼 넣어 주면 돼요.

linter:
  rules:
    unnecessary_lambdas: true

더 알아보기

  • 이 규칙은 현재 Stable(안정) 단계이고, 자동으로 수정(Fix) 도 제공돼요.
  • 선호하는 스타일 규칙인 prefer_function_declarations_over_variablesprefer_tearoffs 같은 규칙과 함께 보면 lambda/tear-off 사용 감각이 더 좋아져요.