Scala中&和&&之间的区别?

Neo*_*kin 1 syntax scala bitwise-operators logical-operators operands

我试图找出Scala中&和&&之间的区别.我搜索后得到了这个

&< - 验证两个操作数

&& < - 停止评估第一个操作数是否计算为false,因为结果将为false

有人可以用例子来解释同样的事情,我不清楚,验证这两个操作数的含义在这里.我们在谈论布尔人吗?

Yuv*_*kov 7

两者都是Scala中的逻辑AND运算符.第一种形式&将评估两个操作数值,例如:

val first = false
val second = true

if (first & second) println("Hello!")
Run Code Online (Sandbox Code Playgroud)

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

这就是为什么&&,它的作用是使评估短路,这意味着你只评估firsts值然后退出条件.

您可以使用按位AND(&)对整数执行按位运算,这与大多数编程语言类似.