undefined_operator 진단: 정의되지 않은 연산자를 사용했을 때
undefined_operator 진단: 정의되지 않은 연산자를 사용했을 때
분석기가 내보내는 진단에는 이름이 있어요. undefined_operator는 어떤 객체에 대해 사용자가 정의할 수 있는 연산자(operator)가 정의되어 있지 않은데 그 연산자를 호출했을 때 Dart 분석기가 알려주는 진단이에요. 예를 들어 +, -, == 같은 연산자를 특정 클래스에 정의해 두지 않았는데 사용하려고 하면 생겨요.
본문
설명
분석기는 사용자가 정의할 수 있는 연산자가 정의되어 있지 않은 객체에 대해 그 연산자가 호출되었을 때 이 진단을 만들어요.
예시
다음 코드는 클래스 C가 + 연산자를 정의하지 않기 때문에 이 진단을 만들어요.
class C {}
C f(C c) => c + 2;
흔한 해결 방법
연산자를 클래스에 정의해야 한다면, 연산자를 정의해요.
class C {
C operator +(int i) => this;
}
C f(C c) => c + 2;