0Pricing
Swift Academy · Pelajaran

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

  1. Cara Kerja defer
  2. Urutan Beberapa Blok defer
  3. defer untuk Pembersihan Sumber Daya
  4. defer dengan Kesalahan dan Pengembalian Awal
← Kembali ke Swift Academy