Delen via


Vergelijkende expressies

Gelijkheidsvergelijkingen

Gelijkheidsvergelijkingen (==) en ongelijkheidsvergelijkingen (!=) zijn momenteel beperkt tot de volgende gegevenstypen: Int, BigInt, Double, String, , BoolResult, Paulien Qubit. Gelijkheidsvergelijkingen van door de gebruiker gedefinieerde typen en aanroepbare functies worden momenteel niet ondersteund.

Gelijkheidsvergelijking voor waarden van het type Qubit evalueert of de twee expressies dezelfde qubit identificeren. Er is geen notie van een kwantumtoestand in Q#; gelijkheidsvergelijking heeft met name geen toegang tot, meting of wijziging van de kwantumstatus van de qubits.

Gelijkheidsvergelijkingen voor Double waarden kunnen misleidend zijn vanwege afrondingseffecten. De volgende vergelijking resulteert bijvoorbeeld in false als gevolg van afrondingsfouten: 49.0 * (1.0/49.0) == 1.0.

Gelijkheidsvergelijking van matrices en tuples wordt ondersteund door vergelijkingen van hun items en wordt alleen ondersteund als alle geneste typen gelijkheidsvergelijking ondersteunen.

Gelijkheidsvergelijking van eindbereiken wordt ondersteund en twee bereiken worden als gelijk beschouwd als ze dezelfde reeks gehele getallen produceren. Bijvoorbeeld: de volgende twee bereiken

    let r1 = 0..2..5; // generates the sequence 0,2,4
    let r2 = 0..2..4; // generates the sequence 0,2,4

als gelijk worden beschouwd. Gelijkheidsvergelijking van open-eindbereiken wordt niet ondersteund.

Kwantitatieve vergelijking

De operatoren kleiner dan (<), kleiner dan of gelijk aan (<=), groter dan (>) en groter dan of gelijk (>=) definiƫren kwantitatieve vergelijkingen. Ze kunnen alleen worden toegepast op gegevenstypen die dergelijke vergelijkingen ondersteunen, dat wil gezegd, dezelfde gegevenstypen die ook rekenkundige expressies kunnen ondersteunen.