在程式設計中使用OR 運算子: | vs ||
在C# 和PHP 等程式語言中使用OR 表達式時,通常使用雙管道(||) 運算子。然而,偶爾也會使用單豎線 (|)。這兩個運算子有什麼區別?
短路行為
雙管道 (||) 是一個「短路」運算子。這表示在涉及多個條件的 OR 表達式中,如果第一個條件的計算結果為 true,則其餘條件將不會被計算。
例如:
if (condition1 || condition2 || condition3)
如果條件 1 為 true,評估停止,條件2和條件3不檢查。
常規評估
相反,單管道(|)運算符執行常規評估。這意味著,無論第一個條件的結果如何,它將始終評估 OR 表達式中的所有條件。
if (condition1 | condition2 | condition3)
在此範例中,即使條件 1 為 true,也將評估所有三個條件。
潛在警告
雖然單管道 (|) 運算符通常提供更好的性能,但它有一個潛在的警告。與短路 OR 不同,常規 OR 運算子在遇到 null 參考或類似錯誤時不會停止計算。
例如:
if (class != null || class.someVar < 20)
如果 class 為 null,常規 OR 運算子OR 運算子仍會嘗試計算 class.someVar,進而導致 NullReferenceException。
位元運算
除了在 OR 表達式中使用之外, | and & 運算子也可用於位元運算。在這種情況下,它們對其操作數的二進位表示執行二進位運算。
以上是程式設計中「||」和「|」運算子有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!