0Pricing
Zig Academy · Pelajaran

Penunjuk Opsional dan ?*T

Gabungkan penunjuk dengan sifat opsional.

Penunjuk Opsional dan ?*T adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Penunjuk Juga Dapat Menjadi Optional

Penunjuk biasanya harus selalu mengarah ke nilai yang valid. Jadikan penunjuk itu optional agar ia memiliki cara yang sah untuk berarti belum menunjuk ke apa pun.

Bentuk ?*T

Tipe ?*T berarti: penunjuk optional ke T. Tipe ini dapat menunjuk ke nilai nyata atau menyimpan null.

var node: ?*Node = null;

Penunjuk Null yang Aman

Inilah jawaban Zig untuk penunjuk null dalam C. Penunjuk dapat tidak ada, tetapi optional memaksa Anda memeriksanya sebelum melakukan dereferensi.

Buka Bungkus Sebelum Mengikuti

Anda tidak dapat melakukan dereferensi langsung pada ?*T. Pertama, buka bungkusnya dengan if atau orelse untuk mendapatkan penunjuk biasa di dalamnya.

if (node) |p| {
    use(p.*);
}

Tangkapan Menghasilkan Penunjuk Nyata

Di dalam tangkapan if, nama tersebut adalah *Node biasa, siap didereferensikan dengan .* seperti penunjuk non-optional lainnya.

if (head) |p| {
    const value = p.*;
}

Sangat Berguna untuk Struktur Berantai

Penunjuk optional sangat berguna dalam daftar tertaut dan pohon, ketika bidang next atau child bernilai null di ujung rantai.

const Node = struct { next: ?*Node };

Null Menandai Akhir

Saat menelusuri daftar, bidang next yang bernilai null menandakan dengan jelas bahwa Anda telah mencapai node terakhir dan harus berhenti.

Zig Menyimpan Penanda di Dalam

Untuk penunjuk, Zig menyimpan keadaan null di dalam nilai penunjuk itu sendiri, sehingga ?*T tidak memerlukan ruang tambahan dibandingkan penunjuk biasa.

Penunjuk Optional Konstan

Anda dapat menggabungkan sifat hanya-baca dan optional: ?*const T adalah penunjuk optional yang dapat digunakan untuk membaca, tetapi tidak untuk menulis.

var view: ?*const u8 = null;

Tetap Tanpa Kerusakan Tak Terduga

Karena tipe menyatakan bahwa nilainya mungkin null, kompilator tidak akan membiarkan Anda melupakan pemeriksaan tersebut, berbeda dari dereferensi penunjuk mentah C.

Menelusuri Rantai

Perulangan while yang menangkap setiap penunjuk next optional adalah cara idiomatis untuk menelusuri daftar sampai null muncul.

while (cur) |n| {
    cur = n.next;
}

Pemeriksaan Singkat

Apa yang dijelaskan oleh tipe ?*Node?

Rangkuman

Anda telah mempelajari ?*T: penunjuk optional yang aman. Buka bungkusnya sebelum melakukan dereferensi, dan biarkan null menandai akhir struktur tertaut. 🔗

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penunjuk Opsional dan ?*T” gratis?

Ya — teks lengkap “Penunjuk Opsional dan ?*T” 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 “Penunjuk Opsional dan ?*T”?

Gabungkan penunjuk dengan sifat opsional. 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 3 dari 4.

Berapa lama pelajaran “Penunjuk Opsional dan ?*T” 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. Mendeklarasikan Tipe Opsional
  2. Membuka Bungkus dengan Aman menggunakan if dan orelse
  3. Penunjuk Opsional dan ?*T
  4. null Dibandingkan dengan undefined
← Kembali ke Zig Academy