Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis
Simpan bentuk alternatif dalam satu ruang.
Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis ialah pelajaran Zig Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Zig Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Zig Academy merangkumi sejumlah 4 pelajaran.
Satu Ruang, Pelbagai Bentuk
Kadang-kadang suatu nilai boleh berupa integer atau apungan, tetapi hanya satu pada satu-satu masa. union menyimpan tepat satu daripada beberapa jenis yang mungkin dalam satu ruang.
Mengisytiharkan Union
Anda menulis union dan menyenaraikan medan bernama, setiap satunya dengan jenis tersendiri. Nilai itu hanya menyimpan satu daripada medan tersebut pada satu-satu masa.
const Number = union { int: i64, float: f64 };Ia Menyimpan Satu Medan pada Satu-satu Masa
Tidak seperti struktur, kesatuan tidak menyimpan setiap medan pada satu-satu masa. Ia menyimpan satu medan aktif, manakala medan yang lain tidak wujud.
Menetapkan Medan Aktif
Anda memulakan kesatuan dengan memilih satu medan menggunakan sintaks titik. Medan itu menjadi medan aktif bagi nilai tersebut.
var n = Number{ .int = 42 };Membaca Medan Aktif
Anda membaca kesatuan melalui medan yang anda tetapkan. Akses n.int dan anda memperoleh integer yang disimpan, sama seperti mengakses struktur.
const x = n.int;Memori Dikongsi
Kesatuan memperuntukkan ruang untuk medan terbesarnya dan menggunakan semula ruang itu. Oleh itu, kesatuan ialah cara yang padat untuk menyimpan salah satu daripada beberapa varian.
Menukar Medan Aktif
Menetapkan medan baharu menjadikan medan itu aktif dan nilai lama hilang. Kesatuan itu kini mewakili bentuk yang berbeza.
n = Number{ .float = 3.14 };Membaca Medan yang Salah
Jika anda membaca medan yang tidak aktif, itu ialah pepijat. Dalam binaan selamat, Zig mengesan akses yang salah dan mencetuskan panik.
const f = n.int; // wrong field activeKesatuan Biasa Tiada Tag
Kesatuan biasa tidak mengingati medan yang aktif. Anda mesti menjejakinya sendiri, dan inilah masalah yang diselesaikan oleh kesatuan bertag.
Kesatuan berbanding Struktur
Struktur ialah AND logik bagi medannya, dengan semuanya hadir bersama. Kesatuan ialah OR logik: hanya satu medan wujud pada satu-satu masa.
Bila Hendak Menggunakan Kesatuan
Gunakan kesatuan apabila sesuatu nilai sememangnya mempunyai salah satu daripada beberapa bentuk, seperti token yang berupa nombor atau simbol, dan tidak pernah kedua-duanya pada satu-satu masa.
Semakan Pantas
Berapakah medan kesatuan yang memegang nilai pada masa yang sama?
Imbas Kembali
Anda telah mempelajari kesatuan: satu ruang yang menyimpan satu medan daripada beberapa pilihan bertipe. Kesatuan berkongsi memori, jadi tetapkan dan baca medan aktif sahaja. 🔀
Pelajari Zig dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis” percuma?
Ya — teks penuh “Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Zig Academy, tingkat taraf kepada CoddyKit PRO. Kursus Zig Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis”?
Simpan bentuk alternatif dalam satu ruang. Anda berlatih Zig Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Zig Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Zig Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Enum untuk Set Nilai Tetap
- Kesatuan yang Menyimpan Salah Satu daripada Banyak Jenis
- Kesatuan Bertanda dan switch
- Kaedah Enum dan Integer Sandaran