IT TIP

-> <-연산자는 무엇을합니까?

itqueen 2020. 10. 24. 12:08
반응형

-> <-연산자는 무엇을합니까?


최근에 다음 코드가 나타났습니다.

IntPredicate neg = x -> x <- x;

이게 뭐야, 일종의 역 이중 람다?


-> <-운영자 가 없습니다 . 첫 번째 ->는 Java 8에 도입 된 람다 구문이며 두 번째 <-는 'smaller than' <및 'unary minus' 의 잘못된 연결입니다 -.

당신은 그것을 읽을 수 있습니다 IntPredicate neg = (x) -> (x < (-x));. 즉, 그것이 모든 ( , 대부분의 ) 음수에 대한 경우 x인보다 작은 지 여부를 테스트 하므로 이름이 .-xneg

IntPredicate neg = x -> x <- x;
System.out.println(neg.test(4));   // false
System.out.println(neg.test(0));   // false
System.out.println(neg.test(-4));  // true

완전성을 위해 :이 테스트는 (의도적으로?) 이해하기 어려울뿐만 아니라-주석에서 지적했듯이- Integer.MIN_VALUE(즉 ==-Integer.MIN_VALUE) 에도 실패합니다 . 대신 훨씬 더 간단한 IntPredicate neg = x -> (x < 0);.

참고 URL : https://stackoverflow.com/questions/24938333/what-does-the-operator-do

반응형