簡體   English   中英

- > < - 運算符有什么作用?

[英]What does the -> <- operator do?

我最近發現了以下代碼:

IntPredicate neg = x -> x <- x;

這是什么,某種反向雙lambda?

沒有-> <-運算符。 第一個->只是lambda語法,如Java 8中所介紹的那樣,第二個<-是'小於' <和'一元減'的誤導性連接-

您可以將其讀作IntPredicate neg = (x) -> (x < (-x)); ,即它測試x是否小於-x ,這是所有(好的, 大多數 )負數的情況,因此名稱為neg

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM