함수에 값 할당

함수에 값 할당 (assignment_to_function)

이 문서는 Dart 분석기(analyzer)가 만들어 내는 assignment_to_function 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. 함수의 이름이 할당 표현식의 왼쪽 피연산자로 등장할 때 분석기가 이 진단을 알려 줘요. 함수 자체에는 값을 할당할 수 없기 때문이에요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.

출처: assignment_to_function

본문

진단 메시지

Functions can't be assigned a value.

함수에는 값을 할당할 수 없어요.

설명

분석기는 함수의 이름이 할당 표현식의 왼쪽 피연산자(대입 대상)로 등장하면 이 진단을 만들어 내요. 함수 자체에 값을 할당하는 것은 유효하지 않으니까요.

예시

다음 코드는 함수 f에 대한 할당이 유효하지 않기 때문에 이 진단을 만들어 내요.

void f() {}

void g() {
  f = () {};
}

일반적인 해결 방법

오른쪽 피연산자를 지역 변수 같은 다른 곳에 할당해야 한다면, 왼쪽 피연산자를 바꿔 주세요.

void f() {}

void g() {
  var x = () {};
  print(x);
}

함수의 구현을 바꾸려는 의도라면, 함수 대신 함수 값을 담는 변수를 정의해 주세요.

void Function() f = () {};

void g() {
  f = () {};
}

더 알아보기