Değişmez Değerler

Birim değişmez değeri

türü için Unit mevcut olan tek değişmez değer değeridir().

Başka hiçbir bağımsız değişkenin Unit geçirilmesi gerekmediğinden veya yürütmeyi geciktirmediğinden, değer genellikle çağrılabilenler için bağımsız değişken olarak kullanılır. Ayrıca, başka bir değerin döndürülmesi gerekmeyen, yani ve/veya Controlled functor'ı destekleyen Adjoint birim işlemler için geçerli olan dönüş değeri olarak da kullanılır.

Int değişmez değerleri

TürünInt değer değişmez değerleri ikili, sekizli, ondalık veya onaltılık gösterimde ifade edilebilir. İkili olarak ifade edilen değişmez değerler, sekizli için ile 0o ve onaltılık için ile 0x öneklidir0b. Yaygın olarak kullanılan ondalık gösterimi için ön ek yoktur.

Gösterimi Değer Değişmez Değeri
İkili 0b101010
Sekizli 0o52
Ondalık 42
Onaltılık 0x2a

BigInt değişmez değerleri

TürünBigInt değer değişmez değerleri her zaman ile L yapıştırılır ve ikili, sekizli, ondalık veya onaltılık gösterimle ifade edilebilir. İkili olarak ifade edilen değişmez değerler, sekizli için ile 0o ve onaltılık için ile 0x öneklidir0b. Yaygın olarak kullanılan ondalık gösterimi için ön ek yoktur.

Gösterimi Değer Değişmez Değeri
İkili 0b101010L
Sekizli 0o52L
Ondalık 42L
Onaltılık 0x2aL

Çift değişmez değerler

TürünDouble değer değişmez değerleri standart veya bilimsel olarak ifade edilebilir.

Gösterimi Değer Değişmez Değeri
Standart 0.1973269804
Bilimsel 1.973269804e-1

Ondalık ayırıcıdan sonra gelen hiçbir şey yoksa, ondalık ayırıcıdan sonraki basamak atlanabilir. Örneğin, 1. geçerli Double bir değişmez değerdir ve ile 1.0aynıdır.

Bool değişmez değerleri

Türü için Bool mevcut değişmez değerler ve falseşeklindedirtrue.

Dize değişmez değerleri

TürünString değer değişmez değeri, çift tırnak içine alınmış unicode karakterlerden oluşan rastgele bir uzunluk dizisidir. Dizenin içinde, ters eğik çizgi karakteri çift tırnak karakterinden \ kaçmak ve olarak yeni satır \neklemek, satır başı olarak \rve olarak sekme \teklemek için kullanılabilir.

Geçerli dize değişmez değerleri için örnekler aşağıda verilmiştir:

"This is a simple string."
"\"This is a more complex string.\", she said.\n"

Q# ayrıca ilişkilendirilmiş dizeleri de destekler. İlişkilendirilmiş dize, herhangi bir sayıda ilişkilendirme ifadesi içerebilen bir dize değişmez değeridir. Bu ifadeler rastgele türlerde olabilir. Oluşturma sonrasında ifadeler değerlendirilir ve bunların temsili String tanımlanan değişmez değer içinde karşılık gelen konuma eklenir. İlişkilendirme, özel karakteri $ doğrudan ilk tırnak işaretinden önce, aralarında boşluk olmadan ön eklenerek etkinleştirilir.

Örneğin, değerini veren 1bir ifadeyseres, aşağıdaki String değişmez değerdeki ikinci cümlede "Sonuç 1 oldu" ifadesi görüntülenir:

$"This is an interpolated string. The result was {res}."

Kubit değişmez değerleri

Kuantum belleği çalışma zamanı tarafından yönetildiğinden Qubit tür için değişmez değer yoktur. Bu nedenle tür Qubit değerleri yalnızca ayırma yoluyla alınabilir.

Tür Qubit değerleri, kuantum bitinin veya kubitin ele alınabileceği opak bir tanımlayıcıyı temsil eder. Destekledikleri tek işleç , eşitlik karşılaştırmasıdır. Veri türü hakkında Qubit daha fazla bilgi için bkz. Kubitler.

Sonuç değişmez değerleri

Türü için Result mevcut değişmez değerler ve OneşeklindedirZero.

türündeki Result değerler, ikili kuantum ölçümünün sonucunu temsil eder. Zero +1 eigenspace üzerine bir projeksiyon gösterir, One -1 eigenspace üzerine bir projeksiyon gösterir.

Pauli değişmez değerleri

Türü için Pauli var olan değişmez değerler , PauliX, PauliYve PauliZ'dırPauliI.

türündeki Pauli değerler, kimliği temsil eden dört tek kubitli Pauli matrislerindenPauliI birini temsil eder. Tür Pauli değerleri genellikle döndürmelerin eksenini belirtmek ve ölçülecek temele göre belirtmek için kullanılır.

Aralık değişmez değerleri

TürünRange değer değişmez değerleri, ve end türlerinin ifadeleri olan startstepformun start..step..stopIntifadeleridir. Adım boyutu bir ise atlanabilir. Örneğin, start..stop geçerli Range bir değişmez değerdir ve ile start..1..stopaynıdır.

türündeki Range değerler, dizideki ilk öğenin olduğu ve sonraki öğelerin geçirilene kadar stop öncekine eklenerek step elde edildiği tamsayı dizisini starttemsil eder. Rangedeğerleri her iki uçta da kapsayıcıdır; diğer bir ifadeyle aralığın stop son öğesi ile stop arasındaki start farkın öğesinin stepbir katı olmasıdır. Örneğin pozitif ve stop < startise bir step aralık boş olabilir.

Geçerli değişmez değerler için Range örnekler aşağıda verilmiştir:

  • 1..3 1, 2, 3 aralığıdır.
  • 2..2..5 2, 4 aralığıdır.
  • 2..2..6 2, 4, 6 aralığıdır.
  • 6..-2..2 6, 4, 2 aralığıdır.
  • 2..-2..1 2 aralığıdır.
  • 2..1 boş aralıktır.

Daha fazla bilgi için bkz. Bağlamsal ifadeler.

Dizi değişmez değerleri

Dizi değişmez değeri, virgülle ayrılmış ve köşeli ayraç [ içine alınmış sıfır veya daha fazla ifadeden oluşan bir dizidir. ]Örneğin, [1,2,3]. Tüm ifadeler, dizinin öğe türü olan ortak bir temel türe sahip olmalıdır. ile []boş bir dizi belirtilirse, derleyicinin ifadenin uygun türünü belirlemesi için bir tür ek açıklaması gerekebilir.

İsteğe bağlı uzunlukta diziler, boyutlandırılmış dizi ifadesi kullanılarak oluşturulabilir. Böyle bir ifade, türünde Int herhangi bir ifade olabileceği biçimindedir s[expr, size = s]ve expr dizinin yinelenen s zamanlarının öğeleri olacak bir değer olarak değerlendirilir. Örneğin, [1.2, size = 3] ile aynı diziyi [1.2, 1.2, 1.2]oluşturur.

Demet değişmez değerleri

Tanımlama grubu değişmez değeri, virgülle ayrılmış ve ve parantez içine alınmış herhangi bir türde bir veya daha fazla ifadeden oluşan ()bir dizidir. Tanımlama grubu türü, her öğe türüyle ilgili bilgileri içerir.

Değer Değişmez Değeri Tür
("Id", 0, 1.) (String, Int, Double)
(PauliX,(3,1)) (Pauli, (Int, Int))

Tek bir öğe içeren demetler, hem tür hem de değer olarak öğenin kendisiyle özdeş olarak değerlendirilir ve bu da tekil tanımlama grubu eşdeğerliği olarak adlandırılır.

Tanımlama demetleri, değerleri tek bir değerde birlikte paketlemek için kullanılır ve bu da bunları geçirmeyi kolaylaştırır. Bu, her çağrılabilen için tam olarak bir giriş alıp tam olarak bir çıkış döndürmeyi mümkün kılar.

Kullanıcı tanımlı türler için değişmez değerler

Kullanıcı tanımlı türün değerleri, oluşturucuları çağrılarak oluşturulur. Tür bildirilirken otomatik olarak bir varsayılan oluşturucu oluşturulur. Şu anda özel oluşturucuları tanımlamak mümkün değildir.

Örneğin, türünde IntIntPair(2, 3) iki öğe varsaIntPair, varsayılan oluşturucuyu çağırarak yeni bir örnek oluşturur.

İşlem ve işlev değişmez değerleri

Anonim işlemler ve işlevler bir lambda ifadesi kullanılarak oluşturulabilir.