0Pricing
Zig Academy · Pelajaran

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

  1. const untuk Nilai yang Tidak Pernah Berubah
  2. var untuk Status yang Dapat Diubah
  3. Inferensi Tipe vs Tipe Eksplisit
  4. undefined dan Memori yang Belum Diinisialisasi
← Kembali ke Zig Academy