Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Q# mendukung jenis struct yang ditentukan pengguna. jenis struct mirip dengan jenis rekaman di F#; mereka tidak dapat diubah tetapi mendukung konstruksi salinan dan pembaruan.
Jenis struktur
jenis struct hanya dapat berisi item bernama dan tidak mendukung item anonim. Kombinasi item bernama apa pun didukung, meskipun item tidak dapat ditumpuk.
Deklarasi berikut, misalnya, mendefinisikan Complex struct yang memiliki dua item bernama Real dan Imaginary, kedua jenis Double:
struct Complex {
Real : Double,
Imaginary : Double,
}
Anda dapat mengakses item yang terkandung melalui nama mereka atau dengan dekonstruksi
jenis struct berguna karena dua alasan. Pertama, selama pustaka dan program yang menggunakan jenis item akses yang ditentukan melalui namanya daripada dengan dekonstruksi, jenis dapat diperluas untuk berisi item tambahan nanti tanpa merusak kode pustaka apa pun. Karena itu, mengakses item melalui dekonstruksi tidak disarankan.
Kedua, Q# memungkinkan Anda menyampaikan niat dan harapan untuk jenis data tertentu karena tidak ada konversi otomatis antara nilai dari dua jenis struct, bahkan jika jenis itemnya identik.
Konstruktor struct
Kompilator secara otomatis menghasilkan konstruktor untuk jenis struct baru saat membaca definisi struct. Untuk struktur Complex dalam contoh sebelumnya, Anda dapat membuat instans dengan
let complexPair = Complex(1.4, 2.1);
Anda juga dapat menentukan instans dengan kata kunci new, misalnya
let complexPair = new Complex { Real = 1.4, Imaginary = 2.1 };
Anda dapat menyalin struct yang ada dengan sintaks ...
let copyPair = new Complex { ...complexPair };
Saat menyalin, Anda dapat menentukan bidang individual untuk diubah
let updatedPair = new Complex { ...complexPair, Real = 3.5 };