Expresiones comparativas
Comparaciones de igualdad
Actualmente, las comparaciones de igualdad (==
) y las comparaciones de desigualdad (!=
) se limitan a los siguientes tipos de datos: Int
, BigInt
, Double
, String
, Bool
, Result
, Pauli
y Qubit
. Actualmente no se admiten comparaciones de igualdad de tipos y llamadas definidos por el usuario.
La comparación de igualdad de valores de tipo Qubit
evalúa si las dos expresiones identifican el mismo cúbit. No hay ninguna noción de un estado cuántico en Q#; la comparación de igualdad en particular no tiene acceso, mide ni modifica el estado cuántico de los cúbits.
Las comparaciones de igualdad de valores Double
pueden ser engañosas debido a los efectos de redondeo.
Por ejemplo, la siguiente comparación se evalúa como false
debido a errores de redondeo: 49.0 * (1.0/49.0) == 1.0
.
La comparación de igualdad de matrices y tuplas son compatibles con comparaciones de sus elementos y solo se admiten si todos sus tipos anidados admiten la comparación de igualdad.
Se admite la comparación de igualdad de los intervalos cerrados y se consideran iguales dos intervalos si producen la misma secuencia de enteros. Por ejemplo, los dos intervalos siguientes
let r1 = 0..2..5; // generates the sequence 0,2,4
let r2 = 0..2..4; // generates the sequence 0,2,4
se consideran iguales. No se admite la comparación de igualdad de intervalos abiertos.
Comparación cuantitativa
Los operadores menor que (<
), menor o igual que (<=
), mayor que (>
) y mayor o igual que (>=
) definen comparaciones cuantitativas. Solo se pueden aplicar a los tipos de datos que admiten dichas comparaciones, es decir, los mismos tipos de datos que también admiten expresiones aritméticas.