undefined dan Memori yang Belum Diinisialisasi
Pesan ruang penyimpanan sebelum memiliki nilai.
undefined dan Memori yang Belum Diinisialisasi adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Menyediakan Ruang Terlebih Dahulu
Terkadang Anda ingin menyediakan penyimpanan sebelum memiliki nilai untuk ditempatkan di dalamnya. Zig menyediakan kata kunci undefined tepat untuk itu.
Berkenalan dengan undefined
Menulis undefined mendeklarasikan binding yang memorinya dicadangkan, tetapi belum berisi nilai yang bermakna. Anda berjanji akan segera mengisinya.
var buffer: [16]u8 = undefined;Ini Adalah Janji
undefined adalah janji Anda untuk menetapkan nilai nyata sebelum membacanya. Jika dibaca terlebih dahulu, Anda mendapatkan sampah, yaitu pola bit yang tidak ditentukan.
Umum Digunakan pada Buffer
Array tetap yang akan segera Anda isi adalah contoh klasiknya. Anda menentukan ukuran buffer, membiarkannya undefined, lalu menulis ke dalamnya elemen demi elemen.
var line: [256]u8 = undefined;Keamanan Membantu Menemukan Kesalahan
Dalam mode Debug dan ReleaseSafe, Zig mengisi memori undefined dengan byte 0xAA. Pola yang jelas ini membantu Anda menemukan pembacaan awal yang tidak disengaja.
Tetapkan Sebelum Membaca
Aturannya sederhana: selalu tulis nilai nyata sebelum membaca binding undefined. Membacanya terlebih dahulu adalah bug yang ingin Zig bantu hindari.
var x: i32 = undefined;
x = 42;undefined Bukan null
undefined berarti memori belum diinisialisasi, sedangkan null berarti nilai tidak ada yang memang disengaja dalam sebuah nilai opsional. Keduanya menyelesaikan masalah yang sepenuhnya berbeda.
Menghindari Biaya Pengisian Nol
Membiarkan penyimpanan besar tetap undefined menghindari biaya menulis nol yang tidak Anda perlukan. Ini adalah pilihan kinerja yang disengaja, bukan kemalasan.
Field Dapat Bernilai undefined
Field struct juga dapat dimulai sebagai undefined jika Anda berencana mengisinya nanti. Intinya adalah keadaan belum diinisialisasi yang jujur dan eksplisit.
var p: Point = undefined;Gunakan Secukupnya
Sebagian besar binding seharusnya memiliki nilai nyata sejak awal. Gunakan undefined hanya saat menyediakan penyimpanan mentah memang benar-benar diperlukan.
Eksplisit Lebih Baik daripada Tersembunyi
Bahasa lain mungkin membiarkan variabel tidak diinisialisasi secara diam-diam. Zig menjadikannya eksplisit, sehingga siapa pun yang membaca kode dapat melihat maksudnya dengan jelas.
Pemeriksaan Singkat
Anda menulis var x: i32 = undefined; lalu membaca x sebelum menetapkan nilainya. Apa yang telah Anda lakukan?
Rangkuman
Anda telah mempelajari bahwa undefined menyediakan penyimpanan tanpa nilai, sering kali untuk buffer. Selalu tetapkan nilai sebelum membaca, dan ingat bahwa undefined berbeda dari null. 📦
Pertanyaan yang Sering Diajukan
Apakah pelajaran “undefined dan Memori yang Belum Diinisialisasi” gratis?
Ya — teks lengkap “undefined dan Memori yang Belum Diinisialisasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “undefined dan Memori yang Belum Diinisialisasi”?
Pesan ruang penyimpanan sebelum memiliki nilai. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “undefined dan Memori yang Belum Diinisialisasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- const untuk Nilai yang Tidak Pernah Berubah
- var untuk Status yang Dapat Diubah
- Inferensi Tipe vs Tipe Eksplisit
- undefined dan Memori yang Belum Diinisialisasi