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.0
aynı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 \n
eklemek, satır başı olarak \r
ve olarak sekme \t
eklemek 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 1
bir 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
, PauliY
ve 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 start
step
formun start..step..stop
Int
ifadeleridir. Adım boyutu bir ise atlanabilir. Örneğin, start..stop
geçerli Range
bir değişmez değerdir ve ile start..1..stop
aynı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 start
temsil eder.
Range
değ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 step
bir katı olmasıdır.
Örneğin pozitif ve stop < start
ise 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 Int
IntPair(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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin