Megosztás a következőn keresztül:


Literálok

Egységkonstans

A típus egyetlen meglévő literálja Unit az érték().

Az Unit értéket általában meghívható argumentumként használják, vagy azért, mert nem kell más argumentumokat átadni, vagy késleltetni a végrehajtást. Akkor is használatos visszatérési értékként, ha más értéket nem kell visszaadni, ami az egységműveletek esetében, azaz a és/vagy a Controlled funktort támogató Adjoint műveletek esetében van így.

Int literálok

A típus értékkonstansai Int bináris, oktális, decimális vagy hexadecimális ábrázolásban fejezhetők ki. A binárisban kifejezett literálok előtagja 0ba , az 0o oktális és 0x a hexadecimális. A gyakran használt decimális ábrázolásnak nincs előtagja.

Képviselet Értékkonstans
Bináris 0b101010
Oktális 0o52
Tizedesjegy 42
Hexadecimális 0x2a

BigInt-literálok

A típus értékkonstansai BigInt mindig utótaggal L vannak ellátva, és bináris, oktális, decimális vagy hexadecimális ábrázolással fejezhetők ki. A binárisban kifejezett literálok előtagja 0ba , az 0o oktális és 0x a hexadecimális. A gyakran használt decimális ábrázolásnak nincs előtagja.

Képviselet Értékkonstans
Bináris 0b101010L
Oktális 0o52L
Tizedesjegy 42L
Hexadecimális 0x2aL

Dupla literálok

A típus értékkonstansai Double szabványos vagy tudományos jelölésben fejezhetők ki.

Képviselet Értékkonstans
Standard 0.1973269804
Tudományos 1.973269804e-1

Ha a tizedesvessző után semmi sem következik, akkor a tizedesvessző utáni számjegy kihagyható. Például 1. egy érvényes Double literál, és megegyezik a következővel 1.0: .

Bool literálok

A típus meglévő literáljai a Bool következők: true és false.

Sztringkonstansok

A típus értékkonstansa String a Unicode-karakterek tetszőleges hosszúságú sorozata, amely idézőjelek közé van foglalva. A sztringen belül a fordított perjel karakter \ használható a dupla idézőjel karakterének feloldására, valamint egy új sor \nbeszúrására mint , a kocsi visszatérése mint \r, a tabulátor pedig a következőre \t: .

Az alábbiakban példákat láthat érvényes sztringkonstansokra:

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

Q# az interpolált sztringeket is támogatja. Az interpolált sztring olyan sztringkonstans, amely tetszőleges számú interpolációs kifejezést tartalmazhat. Ezek a kifejezések tetszőleges típusúak lehetnek. Az építéskor a rendszer kiértékeli a kifejezéseket, és beszúrja őket String a megadott literál megfelelő helyére. Az interpoláció úgy engedélyezve van, hogy a speciális karaktert $ közvetlenül a kezdeti idézőjel elé illeszti, és nincs közöttük szóköz.

Ha például egy kifejezés, res amely a értéket adja vissza 1, akkor a következő String literál második mondata a következőt jeleníti meg: "Az eredmény 1 volt".

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

Qubit-literálok

A típushozQubit nem léteznek literálok, mivel a kvantummemóriát a futtatókörnyezet kezeli. A típusértékek Qubit így csak foglalással szerezhetők be.

A típusértékek Qubit egy átlátszatlan azonosítót jelölnek, amellyel egy kvantumbit vagy qubit kezelhető. Az egyetlen támogatott operátor az egyenlőségi összehasonlítás. Az adattípussal kapcsolatos Qubit további információkért lásd: Qubitek.

Eredménykonstansok

A típus meglévő literáljai a Result következők: Zero és One.

A típusértékek Result egy bináris kvantummérés eredményét jelölik. Zero a +1 kiigentérre vetítést, One a -1 kiigentérre vetítést jelez.

Pauli-literálok

A típus meglévő literáljai a Pauli következők: PauliI, PauliX, PauliYés PauliZ.

A típusértékek Pauli a négy egy qubites Pauli-mátrix egyikét képviselik, és PauliI az identitást jelölik. A típusértékeket Pauli gyakran használják a forgástengely jelölésére és annak meghatározására, hogy melyik alap alapján kell mérni.

Tartománykonstansok

A típus értékkonstansai az Range űrlap start..step..stopkifejezései, ahol starta , stepa és end a típusú Intkifejezések. Ha a lépés mérete egy, akkor kihagyható. Például start..stop egy érvényes Range literál, és megegyezik a következővel start..1..stop: .

A típusértékek Range egész számok sorozatát jelölik, ahol a sorozat startelső eleme a , a későbbi elemek pedig az előzőhöz való hozzáadással step lesznek lekérve, amíg az át nem stop kerül. Rangeaz értékek mindkét végponton befogadóak, azaz a tartomány stop utolsó eleme, ha a és stop a közötti start különbség a többszörösestep. Egy tartomány üres lehet, ha például step pozitív és stop < start.

Az alábbiakban példákat láthat érvényes Range literálokra:

  • 1..3 az 1, 2, 3 tartomány.
  • 2..2..5 a 2, 4 tartomány.
  • 2..2..6 a 2, 4, 6 tartomány.
  • 6..-2..2 a 6, 4, 2 tartomány.
  • 2..-2..1 a 2 tartomány.
  • 2..1 az üres tartomány.

További információ: Környezetfüggő kifejezések.

Tömbkonstansok

A tömbkonstans egy nulla vagy több kifejezésből álló sorozat, vesszővel elválasztva, szögletes zárójelek [ között és ]– például [1,2,3]: . Minden kifejezésnek rendelkeznie kell egy közös alaptípussal, amely a tömb elemtípusa. Ha egy üres tömb van megadva a használatával [], akkor a fordítónak szüksége lehet egy típusjegyzetre a kifejezés megfelelő típusának meghatározásához.

Tetszőleges hosszúságú tömbök egy mérettömbkifejezéssel hozhatók létre. Az ilyen kifejezés formátuma [expr, size = s], ahol s bármilyen típusú Int kifejezés lehet, és expr olyan értékre lesz kiértékelve, amely a tömb ismétlődő s elemei lesznek. Például ugyanazt a tömböt hozza létre, [1.2, size = 3] mint a [1.2, 1.2, 1.2].

Rekordkonstansok

A rekordkonstans egy vagy több tetszőleges típusú kifejezés sorozata, vesszővel elválasztva, zárójelben ( és )zárójelben. A rekord típusa tartalmazza az egyes elemtípusokra vonatkozó információkat.

Értékkonstans Típus
("Id", 0, 1.) (String, Int, Double)
(PauliX,(3,1)) (Pauli, (Int, Int))

Az egyetlen elemet tartalmazó rekordokat a rendszer úgy kezeli, mint magát az elemet, mind típusban, mind értékben, amelyet egyszeri rekordegyenlőségnek neveznek.

A rekordok az értékek egyetlen értékbe való összecsomagolására szolgálnak, így könnyebben átadhatóak. Ez lehetővé teszi, hogy minden hívható pontosan egy bemenetet fogadjon, és pontosan egy kimenetet adjon vissza.

Felhasználó által definiált típusok literáljai

A felhasználó által definiált típusú értékek a konstruktor meghívásával jönnek létre. A típus deklarálásakor automatikusan létrejön egy alapértelmezett konstruktor. Jelenleg nem lehet egyéni konstruktorokat definiálni.

Ha például két típusú elemet Inttartalmaz, IntPair hozzon IntPair(2, 3) létre egy új példányt az alapértelmezett konstruktor meghívásával.

Művelet- és függvénykonstansok

A névtelen műveletek és függvények lambda kifejezéssel hozhatók létre.