相等比較
相等比較(==
)和 不等比較(!=
)目前僅限於下列數據類型:Int
、BigInt
、Double
、String
、Bool
、Result
、Pauli
和 Qubit
。 目前不支援 struct
類型和可呼叫專案的相等比較。
類型值的相等比較 Qubit
會評估兩個表達式是否識別相同的量子位。
Q#中沒有量子狀態的概念;特別是相等比較,不會 存取、測量或修改量子位的量子狀態。
Double
值的相等比較可能會因為四捨五入效果而產生誤導。
例如,下列比較會因為四捨五入錯誤而評估為 false
:49.0 * (1.0/49.0) == 1.0
。
陣列和 Tuple 的相等比較支援其項目的比較,而且只有在其所有巢狀類型都支援相等比較時,才支援。
支援近距離範圍的相等比較,如果兩個範圍產生相同的整數序列,則會將兩個範圍視為相等。 例如,下列兩個範圍
let r1 = 0..2..5; // generates the sequence 0,2,4
let r2 = 0..2..4; // generates the sequence 0,2,4
視為相等。 不支持開放式範圍的相等比較。
量化比較
運算子 小於(<
),小於或等於(<=
),大於(>
),大於或等於(>=
)定義量化比較。 它們只能套用至支援這類比較的數據類型,也就是也可以支援 算術表達式的相同數據類型,。