Inferensi dalam Closure
Pahami inferensi parameter dan nilai kembalian dalam closure.
Inferensi dalam Closure adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 Anonim Menyimpulkan Tipe
Dalam banyak konteks, fungsi anonim dapat menyimpulkan tipe parameter dan hasilnya dari cara fungsi tersebut digunakan.
let numbers = [1, 2, 3, 4]
let doubled = numbers.map { $0 * 2 }
print(doubled)Tipe Parameter yang Disimpulkan
Saat Anda meneruskan fungsi anonim ke map, tipe elemen memberi tahu Swift apa tipe $0, sehingga Anda dapat menghilangkan tipe parameter.
let names = ["ada", "bob"]
let upper = names.map { $0.uppercased() }
print(upper)Tipe Hasil yang Disimpulkan
Isi fungsi anonim menentukan tipe hasilnya. Mengembalikan Bool membuat fungsi anonim tersebut menjadi predikat.
let nums = [1, 2, 3, 4, 5]
let evens = nums.filter { $0 % 2 == 0 }
print(evens)Nama Argumen Singkat
$0, $1, dan seterusnya merujuk pada argumen fungsi anonim berdasarkan posisinya saat tipenya disimpulkan.
let sums = zip([1, 2, 3], [10, 20, 30]).map { $0 + $1 }
print(Array(sums))Parameter Eksplisit Saat Diperlukan
Anda tetap dapat memberi nama parameter dan menambahkan anotasi tipe jika hal itu meningkatkan kejelasan.
let nums = [3, 1, 2]
let sorted = nums.sorted { (a: Int, b: Int) -> Bool in
return a < b
}
print(sorted)Inferensi dari Konteks
Jika Anda menetapkan fungsi anonim ke variabel bertipe, tipe variabel tersebut memberi tahu fungsi anonim tanda tangan yang harus digunakan.
let add: (Int, Int) -> Int = { a, b in a + b }
print(add(2, 3))Fungsi Anonim Penutup
Sintaks fungsi anonim penutup membuat inferensi tetap berfungsi sekaligus menjaga lokasi pemanggilan tetap mudah dibaca.
let result = [5, 3, 8, 1].sorted { $0 > $1 }
print(result)Inferensi dalam reduce
Dalam reduce, tipe akumulator dan elemen disimpulkan dari nilai awal dan urutannya.
let total = [1, 2, 3, 4].reduce(0) { acc, x in acc + x }
print(total)Mengembalikan Nilai dari Fungsi Anonim
Fungsi anonim dengan satu ekspresi dapat menghilangkan kata kunci return; nilai ekspresi tersebut dikembalikan dan tipenya disimpulkan.
let lengths = ["hi", "hello", "hey"].map { $0.count }
print(lengths)Variabel Fungsi Anonim Beranotasi Tipe
Saat disimpan tanpa pemanggilan langsung, tambahkan anotasi pada tipe fungsi anonim agar Swift dapat menyimpulkan isinya.
let transform: (String) -> Int = { $0.count }
print(transform("swift"))Saat Anda Harus Menambahkan Anotasi
Jika konteks di sekitarnya tidak memberikan informasi tipe, Swift tidak dapat menyimpulkan parameter fungsi anonim dan Anda harus menambahkan anotasi.
let isPositive: (Int) -> Bool = { n in n > 0 }
print(isPositive(5), isPositive(-3))Pemeriksaan Singkat
Uji inferensi fungsi anonim.
Ringkasan
Fungsi anonim menyimpulkan tipe parameter dan hasil dari konteks seperti map, filter, atau variabel bertipe. Gunakan bentuk singkat $0/$1 saat tipe dapat disimpulkan, dan tambahkan anotasi secara eksplisit jika tidak ada konteks.
let f: (Int) -> Int = { $0 + 1 }
let xs = [1, 2, 3].map { $0 * 10 }
print(f(9), xs)Belajar Swift dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 122
- Pelajaran
- 409
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Inferensi dalam Closure” gratis?
Ya — teks lengkap “Inferensi dalam Closure” 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 “Inferensi dalam Closure”?
Pahami inferensi parameter dan nilai kembalian dalam closure. 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 4 dari 4.
Berapa lama pelajaran “Inferensi dalam Closure” 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 Inferensi Tipe
- Kapan Menambahkan Anotasi Eksplisit
- Inferensi dengan Literal
- Inferensi dalam Closure