불필요한 람다 규칙
불필요한 람다 규칙 (unnecessary_lambdas)
메서드나 함수를 그대로 넘기면 될 자리에 굳이 람다로 한 번 더 감싸고 있진 않은지 알려 주는 린트 규칙이에요. "떼어내기(tear-off)"라는 표현을 쓰는데, 함수명만 써서 그 함수 자체를 값처럼 넘기는 걸 말해요. 코드가 불필요하게 장황해지는 걸 막아 주거든요.
본문
떼어내기(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_variables나prefer_tearoffs같은 규칙과 함께 보면 lambda/tear-off 사용 감각이 더 좋아져요.