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