0Pricing
Swift Academy · Pelajaran

Dasar closure & Capture

Pahami sintaks closure, argumen singkat, trailing closure, daftar capture, serta perbedaan escaping dan non-escaping.

Dasar closure & Capture adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. 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 3 pelajaran total.

Pengantar

Pelajaran ini memperkenalkan closure: blok kode mandiri yang dapat Anda teruskan. Pelajari sintaksis, argumen singkat, closure di akhir, daftar capture, serta perbedaan escaping dan non-escaping.

Sintaksis closure

Closure terlihat seperti fungsi ringan. Sintaksisnya: { (params) -> Return in ... }.

let greet = { (name: String) -> String in
    return "Hello, \\(name)"
}
print(greet("Ada"))

Argumen singkat

Swift menyediakan argumen singkat seperti $0, $1 untuk menyederhanakan closure.

let doubled = [1,2,3].map { $0 * 2 }
print(doubled)

Closure di akhir

Jika closure merupakan argumen terakhir, Anda dapat menulisnya di luar tanda kurung: ini disebut closure di akhir.

func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
    return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)

Dasar-dasar capture

Closure menangkap nilai dari scope di sekitarnya, misalnya counter yang terus berjalan.

func makeCounter() -> () -> Int {
    var count = 0
    return {
        count += 1
        return count
    }
}
let counter = makeCounter()
print(counter())  // 1
print(counter())  // 2

Daftar capture & escaping

Gunakan daftar capture seperti [weak self] untuk menghindari siklus penyimpanan. Closure secara bawaan bersifat non-escaping; tandai dengan @escaping jika disimpan setelah pemanggilan selesai.

class Greeter {
    var name = "Ada"
    lazy var greet: () -> Void = { [weak self] in
        print("Hello", self?.name ?? "?")
    }
}
let g = Greeter()
g.greet()

Pertanyaan tentang daftar capture

Pemeriksaan cepat: Apa peran daftar capture?

Ringkasan

Ringkasan: Closure adalah blok kode sebaris. Pelajari sintaksis, argumen singkat, closure di akhir, dan kendalikan capture dengan daftar. Closure escaping tetap hidup setelah pemanggilan selesai; non-escaping adalah bawaan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar closure & Capture” gratis?

Ya — teks lengkap “Dasar closure & Capture” 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 3 pelajaran total.

Apa yang akan aku pelajari di “Dasar closure & Capture”?

Pahami sintaks closure, argumen singkat, trailing closure, daftar capture, serta perbedaan escaping dan non-escaping. 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 3.

Berapa lama pelajaran “Dasar closure & Capture” 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. Dasar closure & Capture
  2. Daftar capture — weak/unowned & capture nilai
  3. Escaping vs non-escaping, autoclosure
← Kembali ke Swift Academy