Scala 中 && 和 & 运算符的区别

Mohammad Irfan 2023年1月30日
  1. 在 Scala 中使用逻辑 && 运算符
  2. 在 Scala 中使用按位 & 运算符
Scala 中 && 和 & 运算符的区别

本文将讨论 Scala 中 &&& 运算符之间的区别。 &&& 都是条件运算符,用于测试任何需要两个操作数的逻辑表达式并返回 truefalse,即基于表达式结果的布尔值。

& 运算符是逻辑和按位运算符,因为它对布尔值和二进制数据都进行运算。 && 运算符是一个逻辑运算符,仅适用于 Scala 中的布尔数据类型。

& 运算符计算表达式的两边以获得最终结果。如果第一个表达式返回 false&& 运算符将只计算表达式的左侧,而不计算表达式的右侧。

在 Scala 中使用逻辑 && 运算符

我们正在使用 && 运算符比较一些整数值。它返回

object MyClass {
    def main(args: Array[String]) {
        var a = 10
        var b = 20
        var c = 10
        if(a==b && a==c)
            print("All the values are equal")
        else 
            print("Not equal")
    }
}

输出:

Not equal

在 Scala 中使用按位 & 运算符

我们使用按位运算符 & 来比较一些整数值。如果两个值都是 true,它也会返回 true

object MyClass {
    def main(args: Array[String]) {
        var a = 10
        var b = 20
        var c = 10
        if(a==b & a==c)
            print("All the values are equal")
        else 
            print("Not equal")
    }
}

输出:

Not equal

这是检查这些(&&&)运算符之间差异的最佳方法。 && 运算符也称为短路运算符,因为如果第一个表达式已经为 false,它不会检查第二个表达式。

在这里,我们将 b 变量的值增加 1 以检查编译器是否执行第二个表达式,并查看输出是否与预期相同。

object MyClass {
    def main(args: Array[String]) {
        var a=4
        var b=5;
        println((a == 6) && ((b=b+1) == 6));
        println("b= "+b);
    }
}

输出:

false
5