Cara Kerja defer
Jalankan kode saat keluar dari cakupan, apa pun jalur eksekusinya.
Cara Kerja defer adalah pelajaran Swift 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 Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.
Fungsi defer
Blok defer menjadwalkan kode agar dijalankan saat cakupan saat ini akan berakhir, apa pun cara keluarnya.
func demo() {
defer { print("cleanup") }
print("work")
}
demo()Dijalankan Saat Cakupan Berakhir
Kode yang ditunda dijalankan setelah sisa cakupan selesai, tepat sebelum alur kendali meninggalkannya.
func greet() {
defer { print("goodbye") }
print("hello")
}
greet()Penundaan Setelah Alur Normal
Bahkan dengan beberapa pernyataan, isi defer dijalankan terakhir.
func process() {
defer { print("3 deferred") }
print("1 start")
print("2 middle")
}
process()defer di Dalam Perulangan
defer di dalam badan perulangan berjalan di akhir setiap iterasi.
for i in 1...3 {
defer { print("end of iteration", i) }
print("start of iteration", i)
}defer di Dalam if
Ruang lingkup dapat berupa blok apa pun. defer dalam if berjalan saat blok if tersebut berakhir.
func check(_ flag: Bool) {
if flag {
defer { print("leaving if block") }
print("inside if")
}
print("after if")
}
check(true)Menangkap Nilai Saat Ini
Blok defer menangkap variabel berdasarkan referensi, sehingga blok tersebut melihat nilainya pada saat dijalankan.
func counterDemo() {
var count = 0
defer { print("final count:", count) }
count = 5
}
counterDemo()defer Tidak Menunda Pekerjaan
defer tidak berjalan secara asinkron. Kode tersebut berjalan secara sinkron saat keluar dari ruang lingkup, sebelum fungsi kembali ke pemanggilnya.
func order() {
defer { print("B") }
print("A")
}
order()
print("C")Penggunaan Umum: Memasangkan Penyiapan/Pembersihan
Tempatkan pembersihan tepat di samping penyiapan agar keduanya tetap berdekatan secara visual dan logis.
func session() {
print("open session")
defer { print("close session") }
print("do work")
}
session()defer dalam Blok do
defer di dalam blok do berjalan saat blok tersebut berakhir.
func run() {
do {
defer { print("do block cleanup") }
print("inside do")
}
print("after do")
}
run()Beberapa Pernyataan dalam defer
Blok defer dapat berisi beberapa pernyataan; semuanya berjalan bersama saat keluar dari ruang lingkup.
func multi() {
defer {
print("step 1 of cleanup")
print("step 2 of cleanup")
}
print("main work")
}
multi()Mengapa Menggunakan defer
defer menjamin pembersihan terjadi terlepas dari cara ruang lingkup berakhir, sehingga mengurangi kemungkinan lupa melakukannya pada jalur tertentu.
func guaranteed() {
defer { print("always runs") }
print("body")
}
guaranteed()Pemeriksaan Singkat
Uji waktu pelaksanaan defer.
Ringkasan
defer menjadwalkan kode agar berjalan di akhir ruang lingkup saat ini, terlepas dari cara ruang lingkup tersebut berakhir. Kode ini berjalan secara sinkron, menjadi kode terakhir dalam ruang lingkup, dan ideal untuk menjaga pembersihan tetap berdekatan dengan penyiapan.
func demo() {
defer { print("last") }
print("first")
}
demo()Pertanyaan yang Sering Diajukan
Apakah pelajaran “Cara Kerja defer” gratis?
Ya — teks lengkap “Cara Kerja defer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Cara Kerja defer”?
Jalankan kode saat keluar dari cakupan, apa pun jalur eksekusinya. Kamu berlatih Swift 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 Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift 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 “Cara Kerja 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 Swift Academy ini?
Ya. Setiap pelajaran Swift 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
- Cara Kerja defer
- Urutan Beberapa Blok defer
- defer untuk Pembersihan Sumber Daya
- defer dengan Kesalahan dan Pengembalian Awal