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 0b
a , 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 0b
a , 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 \n
beszú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..stop
kifejezései, ahol start
a , step
a és end
a típusú Int
kifejezé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 start
első 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.
Range
az é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 Int
tartalmaz, 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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: