当前位置: 首页 > 面试题库 >

-> <-运算符的作用是什么?

谭毅然
2023-03-14
问题内容

我最近遇到了以下代码:

IntPredicate neg = x -> x <- x;

这是什么,某种反向双λ?


问题答案:

没有-> <-操作员。第一个->只是Java 8中引入的lambda语法,第二个<-是误导性的“小于” <和“一元减”的串联-

您可以将其读取为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);



 类似资料:
  • 问题内容: 我有一些JavaScript代码: 什么是(尖)运算符在Javascript中是什么意思? 问题答案: 该运算符是按位XOR运算符。要平方一个值,请使用:

  • 问题内容: 我已经使用Java几年了,但是直到最近我还没有遇到过这种构造: 这可能是一个非常简单的问题,但是有人可以解释吗?我该如何阅读?我很确定我知道它是如何工作的。 如果isHere为真,getHereCount()则称为 如果isHere为假,getAwayCount()则调用。 正确?这个结构叫做什么? 问题答案: 是的,它是 它称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是

  • 问题内容: 这些不同的运算符做什么? 问题答案: <<, >> 分别向左和向右移位]。如果想象左操作数作为位的二进制序列,你正在移那些向左或向右的比特数指示由右操作数。 它们分别是按位 和 , xor和或。你能想到的,并为同行和,但他们会将自己的操作数为位向量,并在每个位执行逻辑运算。没有运算符,但是此运算是“xor”或“exclusiveor”。您可以将“ a xorb”视为“ a或b,但不能同

  • 本文向大家介绍JavaScript中的运算符是什么?,包括了JavaScript中的运算符是什么?的使用技巧和注意事项,需要的朋友参考一下 让我们采用一个简单的表达式“ 4 + 5等于9”。这里4和5称为操作数,“ +”称为运算符。 JavaScript支持以下类型的运算符。 算术运算符 比较运算符 逻辑(或关系)运算符 赋值运算符 条件(或三元)运算符 例 这是一个说明运算符示例的示例-

  • 问题内容: 运算符是做什么用的?我看过类似的东西 但是,这对我来说都没有意义。我已经完成了研究,但只提出了没有任何解释的示例。 问题答案: 是用于测试对象(实例)是否为给定Type的子类型的二进制运算符。 想像: 然而,随着;, 因为是的超类型,可能较少。 和, 这是因为Dog既不是的子类型也不是的父类型Cat,并且它也不实现它。 请注意,上面用于的变量是类型。这是一个运行时操作,将我们带到一个用

  • 问题内容: 我很困惑,在Google中找不到。谁能告诉我操作员名称是什么? 问题答案: 不等于,等于