Jaminan defer
Jalankan kod apabila skop berakhir.
Jaminan defer ialah pelajaran Zig Academy percuma di CoddyKit. Ini ialah pelajaran 1 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.
Pembersihan yang Boleh Dipercayai
Hampir setiap program membuka sesuatu yang kemudiannya mesti ditutup. Zig menyediakan defer supaya pembersihan tidak pernah terlupa.
Perkara yang Dilakukan oleh defer
Pernyataan defer menjadualkan sekeping kod untuk dijalankan apabila skop sekeliling berakhir, tanpa mengira cara ia berakhir.
defer cleanup();Tulis Pembersihan Serta-merta
Idea utamanya: letakkan baris pembersihan bersebelahan dengan baris yang memperoleh sumber, supaya kedua-duanya mustahil dipisahkan.
const file = try open();
defer file.close();Ia Berjalan apabila Skop Berakhir
Kod yang ditangguhkan tidak berjalan serta-merta. Ia menunggu sehingga skop tempatnya berada selesai, kemudian berjalan.
{
defer cleanup();
work();
}Berfungsi pada Setiap Laluan Keluar
Sama ada skop berakhir secara normal atau anda return lebih awal dari tengah-tengahnya, kod yang ditangguhkan tetap berjalan. Tiada jalan untuk terlepas.
defer file.close();
if (bad) return error.Oops;Ralat Tidak Melangkauinya
Walaupun try kemudiannya dalam fungsi mengembalikan ralat, defer anda telah pun dijadualkan dan akan berjalan ketika keluar.
Sebarang Pernyataan, Bukan Panggilan Sahaja
defer boleh mengandungi sebarang pernyataan tunggal, termasuk blok, jadi anda boleh mengumpulkan beberapa langkah pembersihan bersama.
defer {
free(buf);
log("done");
}Skop Melangkaui Fungsi
defer terikat pada skop yang merangkuminya, yang boleh berupa badan gelung atau blok if, bukan keseluruhan fungsi sahaja.
while (more()) {
defer step();
}Tiada Penjejakan Manual
Tanpa defer, anda mesti mengingati untuk menutup pada setiap cabang. Dengannya, pengompil menjalankan pembersihan anda supaya anda tidak boleh terlupa mana-mana laluan.
Dibaca dari Atas ke Bawah
Oleh sebab pemerolehan dan pembersihan diletakkan bersama, kod anda dibaca seperti cerita yang jelas: open, gunakan, dan penutupan sudah pun dijanjikan.
Alat Utama Keselamatan Sumber
Daripada fail kepada peruntukan memori dan kunci, defer ialah alat harian yang memastikan program Zig bebas kebocoran dan kemas.
Semakan Pantas
Bilakah pernyataan yang ditangguhkan sebenarnya berjalan?
Ringkasan
Anda telah mempelajari defer: tulis pembersihan di sebelah pemerolehan, dan Zig menjamin ia berjalan apabila skop keluar pada setiap laluan. 🧹
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 “Jaminan defer” percuma?
Ya — teks penuh “Jaminan defer” 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 “Jaminan defer”?
Jalankan kod apabila skop berakhir. 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 1 daripada 4.
Berapa lamakah pelajaran “Jaminan defer” 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
- Jaminan defer
- Turutan Pelaksanaan Berbilang defer
- defer berbanding errdefer dalam Amalan
- Menggandingkan Open dengan Close