함수를 이름에 묶을 때는 함수 선언을 써요
함수를 이름에 묶을 때는 함수 선언을 써요
prefer_function_declarations_over_variables 린트 규칙은 함수를 이름에 바인딩할 때는 함수 리터럴 변수보다 함수 선언을 쓰라고 권하는 규칙이에요. Stable 상태이고 공식 추천(Recommended) 규칙이며 자동 수정도 가능해요.
출처: Use a function declaration to bind a function to a name.
본문
Effective Dart에서도 나오는 규칙이에요. 함수를 이름에 바인딩할 때는 함수 선언을 사용하세요.
Dart는 지역 함수 선언(local function declaration)을 지원하므로, 함수 리터럴 대신 함수 선언을 쓰는 게 좋은 습관이에요.
BAD — 함수 리터럴을 변수에 담았어요.
void main() {
var localFunction = () {
...
};
}
GOOD — 로컬 함수 선언으로 바꿨어요.
void main() {
localFunction() {
...
}
}
규칙 켜기
analysis_options.yaml 파일의 linter > rules 아래에 prefer_function_declarations_over_variables를 추가하면 돼요.
linter:
rules:
- prefer_function_declarations_over_variables
YAML 맵 문법으로 설정한다면 이렇게 써요.
linter:
rules:
prefer_function_declarations_over_variables: true
더 알아보기
- 함수를 다른 값처럼 넘겨줘야 하는 상황이라면 함수 리터럴 변수가 더 적절할 수 있어요.