Harfiah
Unit harfiah
Satu-satunya harfiah yang ada untuk Unit
jenis adalah nilai ()
.
Nilai Unit
umumnya digunakan sebagai argumen untuk dapat dipanggil, baik karena tidak ada argumen lain yang perlu diteruskan atau untuk menunda eksekusi. Ini juga digunakan sebagai nilai pengembalian ketika tidak ada nilai lain yang perlu dikembalikan, yang merupakan kasus untuk operasi uniter, yaitu, operasi yang mendukung Adjoint
dan/atau Controlled
funktor.
Literal int
Nilai harfiah untuk Int
jenis dapat dinyatakan dalam representasi biner, oktal, desimal, atau heksadesimal. Harfiah yang dinyatakan dalam biner diawali dengan 0b
, dengan 0o
untuk oktal, dan dengan 0x
untuk heksadesimal. Tidak ada awalan untuk representasi desimal yang umum digunakan.
Representasi | Nilai Harfiah |
---|---|
Biner | 0b101010 |
Oktal | 0o52 |
Desimal | 42 |
Heksadesimal | 0x2a |
Literal BigInt
Nilai harfiah untuk BigInt
jenis selalu didahului dengan L
dan dapat dinyatakan dalam representasi biner, oktal, desimal, atau heksadesimal. Harfiah yang dinyatakan dalam biner diawali dengan 0b
, dengan 0o
untuk oktal, dan dengan 0x
untuk heksadesimal. Tidak ada awalan untuk representasi desimal yang umum digunakan.
Representasi | Nilai Harfiah |
---|---|
Biner | 0b101010L |
Oktal | 0o52L |
Desimal | 42L |
Heksadesimal | 0x2aL |
Literal ganda
Harfiah nilai untuk Double
jenis dapat dinyatakan dalam notasi standar atau ilmiah.
Representasi | Nilai Harfiah |
---|---|
Standard | 0.1973269804 |
Ilmiah | 1.973269804e-1 |
Jika tidak ada yang mengikuti setelah titik desimal, maka digit setelah titik desimal dapat dihilangkan. Misalnya, 1.
adalah harfiah yang valid Double
dan sama dengan 1.0
.
Literal bool
Harfiah yang ada untuk Bool
jenis adalah true
dan false
.
Literal string
Nilai harfiah untuk String
jenis adalah urutan panjang karakter Unicode yang arbitrer yang diapit tanda kutip ganda.
Di dalam untai (karakter), karakter garis miring terbalik \
dapat digunakan untuk menghindari karakter tanda kutip ganda, dan untuk menyisipkan baris baru sebagai \n
, enter sebagai \r
, dan tab sebagai \t
.
Berikut ini adalah contoh untuk harfiah untai (karakter) yang valid:
"This is a simple string."
"\"This is a more complex string.\", she said.\n"
Q# juga mendukung untai (karakter) yang diinterpolasi.
Sebuah untai (karakter) interpolasi adalah untai (karakter) harfiah yang mungkin berisi sejumlah ekspresi interpolasi. Ekspresi ini bisa dari jenis yang berubah-ubah.
Setelah konstruksi, ekspresi dievaluasi dan representasi String
nya disisipkan di lokasi yang sesuai dalam harfiah yang ditentukan. Interpolasi diaktifkan dengan prepending karakter $
khusus langsung sebelum kutipan awal, tanpa spasi putih di antara mereka.
Misalnya, jika res
adalah ekspresi yang mengevaluasi ke 1
, maka kalimat kedua dalam literal berikut String
menampilkan "Hasilnya adalah 1.":
$"This is an interpolated string. The result was {res}."
Literal qubit
Tidak ada harfiah untuk Qubit
jenis, karena memori kuantum dikelola oleh runtime. Nilai jenis Qubit
karenanya hanya dapat diperoleh melalui alokasi.
Nilai jenis Qubit
mewakili pengidentifikasi buram di mana bit kuantum, atau qubit, dapat ditangani. Satu-satunya operator yang mereka dukung adalah perbandingan kesetaraan. Untuk informasi selengkapnya tentang Qubit
jenis data, Lihat Qubits.
Literal hasil
Harfiah yang ada untuk Result
jenis adalah Zero
dan One
.
Nilai jenis Result
mewakili hasil pengukuran kuantum biner.
Zero
menunjukkan proyeksi ke ruang eigen +1, One
menunjukkan proyeksi ke ruang eigen -1.
Harfiah Pauli
Harfiah yang ada untuk Pauli
jenis adalah PauliI
, PauliX
, PauliY
, dan PauliZ
.
Nilai jenis Pauli
mewakili salah satu dari empat matriks Pauli qubit tunggal, dengan PauliI
mewakili identitas.
Nilai jenis Pauli
biasanya digunakan untuk menunjukkan sumbu rotasi dan untuk menentukan dasar mana yang akan diukur.
Rentang harfiah
Harfiah nilai untuk Range
jenis adalah ekspresi dari bentuk start..step..stop
, di mana start
, step
, dan end
adalah ekspresi dari jenis Int
. Jika ukuran langkah adalah satu, itu mungkin dihilangkan. Misalnya, start..stop
adalah harfiah yang valid Range
dan sama dengan start..1..stop
.
Nilai jenis Range
mewakili urutan bilangan bulat, di mana elemen pertama dalam urutan adalah start
, dan elemen berikutnya diperoleh dengan menambahkan step
ke yang sebelumnya, hingga stop
dilewatkan.
Range
nilai inklusif di kedua ujungnya, yaitu, elemen terakhir dari rentang adalah stop
jika perbedaan antara start
dan stop
adalah kelipatan dari step
.
Rentang mungkin kosong jika, misalnya, step
positif dan stop < start
.
Berikut adalah contoh untuk harfiah Range
yang valid:
1..3
adalah rentang 1, 2, 3.2..2..5
adalah rentang 2, 4.2..2..6
adalah rentang 2, 4, 6.6..-2..2
adalah rentang 6, 4, 2.2..-2..1
adalah rentang 2.2..1
adalah rentang kosong.
Untuk informasi selengkapnya, lihat Ekspresi kontekstual.
Literal array
Array literal adalah urutan nol atau lebih ekspresi, dipisahkan oleh koma dan diapit dalam tanda kurung siku [
dan ]
; misalnya, [1,2,3]
.
Semua ekspresi harus memiliki jenis dasar umum, yang merupakan jenis item array. Jika array kosong ditentukan dengan []
, anotasi jenis mungkin diperlukan bagi pengompilasi untuk menentukan jenis ekspresi yang sesuai.
Array dengan panjang arbitrer dapat dibuat menggunakan ekspresi array berukuran.
Ekspresi seperti itu adalah bentuk [expr, size = s]
, di mana s
dapat berupa ekspresi jenis Int
apa pun dan expr
dievaluasi ke nilai yang akan menjadi item dari array berulang s
kali. Misalnya, [1.2, size = 3]
membuat array yang sama dengan [1.2, 1.2, 1.2]
.
Literal tuple
Literal tuple adalah urutan dari satu atau beberapa ekspresi dari jenis apa pun, dipisahkan oleh koma dan diapit dalam tanda kurung (
dan )
. Jenis tuple mencakup informasi tentang setiap jenis item.
Nilai Harfiah | Jenis |
---|---|
("Id", 0, 1.) |
(String, Int, Double) |
(PauliX,(3,1)) |
(Pauli, (Int, Int)) |
Tuple yang berisi satu item diperlakukan identik dengan item itu sendiri, baik dalam jenis maupun nilai, yang disebut kesetaraan tuple singleton.
Tuple digunakan untuk menggabungkan nilai menjadi satu nilai, membuatnya lebih mudah untuk menyebarkannya. Ini memungkinkan setiap panggilan untuk mengambil tepat satu input dan mengembalikan tepat satu output.
Literal untuk jenis yang ditentukan pengguna
Nilai jenis yang ditentukan pengguna dibangun dengan memanggil konstruktor mereka. Konstruktor default dibuat secara otomatis saat mendeklarasikan jenis. Saat ini tidak mungkin untuk mendefinisikan konstruktor khusus.
Misalnya, jika IntPair
memiliki dua item berjenis Int
, artinya IntPair(2, 3)
membuat instans baru dengan memanggil konstruktor default.
Operasi dan literal fungsi
Operasi dan fungsi anonim dapat dibuat menggunakan ekspresi lambda.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk