提问人:fredoverflow 提问时间:7/24/2014 更新时间:4/11/2015 访问量:3328
-> <- 运算符是做什么的?
What does the -> <- operator do?
答:
91赞
tobias_k
7/24/2014
#1
没有操作员。第一个只是 lambda 语法,如 Java 8 中引入的那样,第二个是 'small than' 和 'monary minus' 的误导性串联。-> <-
->
<-
<
-
你可以把它读作 ,即它测试是否小于 ,所有(嗯,大多数)负数都是这种情况,因此得名 。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);
评论
17赞
fredoverflow
7/24/2014
“所有负数都是这种情况”......除了Integer.MIN_VALUE
;)
7赞
Gimby
7/25/2014
@MarkRotteveel您的版本看起来不像 ASCII 艺术,它只是可读的。
35赞
fredoverflow
7/25/2014
@Gimby 我喜欢检查 x 是否小于 3,因为表达了我对 x ;) 的热爱x <3
6赞
Holger
7/28/2014
如果您非常喜欢“反向 lambda 运算符”,您仍然可以使用......x <- 0
上一个:为什么这会调用默认构造函数?
下一个:最终虚拟功能的意义何在?
评论
(x) -> (x < -x)