繁体   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