단항 연산자를 이항 연산자처럼 썼을 때
단항 연산자를 이항 연산자처럼 썼을 때 (not_binary_operator)
연산자 관련 진단이에요. 단항(unary) 연산자로만 쓸 수 있는 연산자를, 이항(binary) 연산자처럼 좌우 피연산자를 두고 사용했을 때 나오는 진단이죠. 메시지는 "{0} isn't a binary operator." — "{0}은(는) 이항 연산자가 아니에요"라는 뜻이에요.
본문
언제 발생하나요?
단항 연산자로만 쓸 수 있는 연산자가 이항 연산자로 사용됐을 때 애널라이저가 이 진단을 만들어요. 이항 연산자는 피연산자 두 개를 받는 연산자(예: +, -)이고, 단항 연산자는 피연산자 하나만 받는 연산자(예: ~, !)예요.
예시
다음 코드는 ~ 연산자가 단항 연산자로만 쓸 수 있는데, 이항 연산자처럼 쓰여서 이 진단이 발생해요.
var a = 5 ~ 3;
~는 비트 보수 연산으로 값 하나에 붙는 연산자예요. 5 ~ 3처럼 두 값 사이에 둘 수는 없죠.
어떻게 고치나요?
올바른 이항 연산자로 바꿔 주세요. 예를 들어 빼기를 의도했다면 -를 쓰면 돼요.
var a = 5 - 3;
연산자 앞뒤로 피연산자를 두고 쓰는 동작을 원한다면, 그 의미에 맞는 이항 연산자를 고르는 게 핵심이에요.
더 알아보기
- Dart의 연산자 목록은 Operators 문서에서 확인할 수 있어요.
- 다른 진단과 함께 보려면 Diagnostics 목록을 참고하세요.