Share via


Karşılaştırmalı ifadeler

Eşitlik karşılaştırmaları

Eşitlik karşılaştırmaları (==) ve eşitsizlik karşılaştırmaları (!=) şu anda şu veri türleriyle sınırlıdır: Int, BigInt, Double, String, , Bool, Result, Paulive Qubit. Kullanıcı tanımlı türlerin ve çağrılabilenlerin eşitlik karşılaştırmaları şu anda desteklenmemektedir.

Tür Qubit değerleri için eşitlik karşılaştırması, iki ifadenin aynı kubiti tanımlayıp tanımlamadığını değerlendirir. içinde Q#kuantum durumu diye bir şey yoktur; özellikle eşitlik karşılaştırması, kubitlerin kuantum durumuna erişmez , bunları ölçmez veya değiştirmez.

Yuvarlama efektleri nedeniyle değerler için Double eşitlik karşılaştırmaları yanıltıcı olabilir. Örneğin, aşağıdaki karşılaştırma yuvarlama hatalarından false dolayı değerini değerlendirir: 49.0 * (1.0/49.0) == 1.0.

Dizilerin ve demetlerin eşitlik karşılaştırması, öğelerinin karşılaştırmalarıyla desteklenir ve yalnızca iç içe türleri eşitlik karşılaştırmasını destekliyorsa desteklenir.

Yakın uçlu aralıkların eşitlik karşılaştırması desteklenir ve aynı tamsayı dizisini üretirlerse iki aralık eşit olarak kabul edilir. Örneğin, aşağıdaki iki aralık

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

eşit olarak kabul edilir. Açık uçlu aralıkların eşitlik karşılaştırması desteklenmez.

Nicel karşılaştırma

Küçüktür (<), küçüktür veya eşittir (<= ), büyüktür ()> ve büyüktür veya eşittir (>=) işleçleri nicel karşılaştırmaları tanımlar. Bunlar yalnızca bu tür karşılaştırmaları destekleyen veri türlerine, yani aritmetik ifadeleri de destekleyebilecek aynı veri türlerine uygulanabilir.