부울 '&'연산자가 발생하면 오류가 발생하고 '& &'연산자 만 사용할 수 있습니다 (숫자에 대한 비트 단위 작업을 위해 & 연산자가 계속 허용됨) ?Android Studio : '&'대신 '&&'를 적용하려면 lint를 사용 하시겠습니까?
TL; DR : 아마 알고있는 '& &'운영자가 거짓으로 평가 첫 번째 피연산자에서 피연산자 평가 정지하면서 상기 AND 연산을 수행하기 전에, 자바의 '&'연산자는 두 피연산자를 평가한다.
개인적으로이 구분은 혼란스럽고 무의미합니다. fn
이 널의 값을 호출하지 말아야한다는 것을 의미
if (a != null && fn (a)) { ... }
다음 '& &'연산자를 사용하면 같은 일을 할 수 있습니다. 실수로 작성한 경우 :
if (a != null & fn (a)) { ... }
전체 테스트는 완전히 의미가 없습니다. 이런 오타가 결코 생기지 않도록하고 싶습니다. 린터 규칙은 이것을 강제하는 완벽한 방법입니다.
linter 규칙은 피연산자 유형을 구분해야합니다. &
을 숫자와 함께 사용하면 그 의미는 비트 단위로 및 연산자입니다. 나는 이것이 매우 유용하기 때문에 물론 이것을 금지하고 싶지 않습니다. 또한 OR 연산자 |
과 ||
도 비슷한 방식으로 동작하므로 수치 연산을 허용하면서 부울 값에 |
을 허용하지 않으려합니다. 그래서 기본적으로 :
int a = (3 & 4); // OK
boolean b = (true && false); // OK
boolean c = (true & false); // linter error, hopefully
int d = (5 | 7); // OK
boolean e = (true || false); // OK
boolean f = (true | false); // linter error, hopefully
'&'는 적절한 상황에서 유용하며 무의미하거나 무용하지 않습니다. – AntonH
모두 개인적인 취향입니다. C++과 JavaScript에서 나는 &&로 익숙해졌고 다른 것에 대한 필요성을 느끼지 못합니다. –
@digorydoo \t 가끔 비트를 조작하고 싶습니까? –