次の方法で共有


比較式

等価比較

"等価比較" (==) と "不等比較" (!=) は現在、IntBigIntDoubleStringBoolResultPauliQubit の各データ型に限定されています。 現在、ユーザー定義型と呼び出し可能な型の等価比較はサポートされていません。

Qubit 型の値の等価比較では、2 つの式で同じ量子ビットが特定されるかどうかが評価されます。 Q# には、量子状態という概念がありません。具体的にいうと、等価比較は、量子ビットの量子状態にアクセスしたり、それを測定したり、変更したりするものでは "ありません"。

Double 値の等価比較は、丸め効果のために不可解な結果になることがあります。 たとえば 49.0 * (1.0/49.0) == 1.0 という比較は、丸めエラーのために false として評価されます。

配列とタプルの等値比較は、その項目の比較によってサポートされ、入れ子になった型がすべて等値比較をサポートしている場合にのみサポートされます。

終了範囲の等値比較がサポートされ、2 つの範囲が同じ整数シーケンスを生成する場合は等しいと見なされます。 たとえば、次の 2 つの範囲

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

は等しいと見なされます。 オープンエンド範囲の等値比較はサポートされていません。

定量的比較

定量的比較は、"より小さい" (<)、"以下" (<=)、"より大きい" (>)、"以上" (>=) の各演算子によって定義されます。 これらを適用できるのは、そのような比較をサポートするデータ型、つまり算術式もサポートする同じデータ型に限られます。