Jaminan defer
Jalankan kode saat suatu lingkup berakhir.
Jaminan defer adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Pembersihan yang Dapat Dipercaya
Hampir setiap program membuka sesuatu yang nantinya harus ditutup. Zig menyediakan defer agar pembersihan tidak pernah terlupakan.
Apa yang Dilakukan defer
Pernyataan defer menjadwalkan sepotong kode untuk dijalankan saat scope di sekitarnya berakhir, apa pun cara scope tersebut berakhir.
defer cleanup();Tulis Pembersihan Segera
Gagasan utamanya: letakkan baris pembersihan di samping baris yang memperoleh sumber daya, sehingga keduanya tidak mungkin terpisah.
const file = try open();
defer file.close();Dijalankan saat Scope Berakhir
Kode yang ditunda tidak langsung dijalankan. Kode tersebut menunggu hingga scope tempatnya berada selesai, lalu dijalankan.
{
defer cleanup();
work();
}Bekerja pada Setiap Jalur Keluar
Baik scope berakhir secara normal maupun Anda mengembalikan nilai lebih awal dari tengah-tengahnya, kode yang ditunda tetap dijalankan. Tidak ada jalan untuk menghindarinya.
defer file.close();
if (bad) return error.Oops;Error Tidak Melewatinya
Bahkan jika try di bagian berikutnya dalam fungsi mengembalikan error, defer Anda sudah dijadwalkan dan akan dijalankan saat keluar.
Pernyataan Apa Pun, Bukan Hanya Pemanggilan
defer dapat memuat satu pernyataan apa pun, termasuk sebuah blok, sehingga Anda dapat mengelompokkan beberapa langkah pembersihan.
defer {
free(buf);
log("done");
}Scope di Luar Fungsi
defer terikat pada scope yang membungkusnya, yang dapat berupa isi perulangan atau blok if, bukan hanya keseluruhan fungsi.
while (more()) {
defer step();
}Tanpa Pelacakan Manual
Tanpa defer, Anda harus ingat untuk menutup pada setiap cabang. Dengan defer, kompilator menjalankan pembersihan Anda sehingga Anda tidak dapat melupakan suatu jalur.
Dibaca dari Atas ke Bawah
Karena pemerolehan dan pembersihan berada bersama, kode Anda terbaca sebagai alur yang jelas: buka, gunakan, dan penutupan sudah dijanjikan.
Andalan Keamanan Sumber Daya
Mulai dari file, alokasi, hingga lock, defer adalah alat sehari-hari yang menjaga program Zig bebas kebocoran dan tetap rapi.
Pemeriksaan Singkat
Kapan pernyataan yang ditunda sebenarnya dijalankan?
Ringkasan
Anda telah mengenal defer: tulis pembersihan di samping pemerolehan, dan Zig menjamin pembersihan dijalankan saat scope berakhir pada setiap jalur. 🧹
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Jaminan defer” gratis?
Ya — teks lengkap “Jaminan defer” 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 “Jaminan defer”?
Jalankan kode saat suatu lingkup berakhir. 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 1 dari 4.
Berapa lama pelajaran “Jaminan defer” 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
- Jaminan defer
- Urutan Eksekusi Beberapa defer
- defer vs errdefer dalam Praktik
- Memasangkan Open dengan Close