关于语法:scala中&和&&的区别?

Difference between & and && in Scala?

本问题已经有最佳答案,请猛点这里访问。

我正在试图找出scala中&;和&;的区别。我查过了才拿到这个

& <-- verifies both operands

&& <-- stops evaluating if the first operand evaluates to false since the result will be false

有人能用不清楚的例子来解释同样的问题吗?这里验证两个操作数意味着什么?我们说的是布尔人吗?


两者都是scala中的逻辑和运算符。第一个表单&将评估两个操作数的值,例如:

1
2
3
4
val first = false
val second = true

if (first & second) println("Hello!")

在退出if条件之前,将对firstsecond进行评估,尽管我们知道一旦false出现在逻辑和中,整个表达式将已经产生错误。

这就是&&的作用,它的作用是使评估短路,这意味着您只评估first的值,然后退出条件。

您可以使用位与(&对整数执行位操作,这与大多数编程语言类似。