Lambda dan Fungsi Tingkat Tinggi
Teruskan perilaku sebagai nilai.
Lambda dan Fungsi Tingkat Tinggi adalah pelajaran Android 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 Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.
Apa Itu Lambda?
Lambda adalah fungsi kecil yang dapat Anda tulis secara langsung, tanpa memberinya nama.
Anda membungkusnya dengan kurung kurawal: { x -> x + 1 }. Lambda memungkinkan Anda meneruskan perilaku seperti data.
Anda sudah menggunakannya bersama map dan filter.
Menyimpan Lambda dalam Variabel
Lambda adalah nilai, jadi Anda dapat menyimpannya dalam variabel dan memanggilnya nanti.
Panggil lambda seperti fungsi menggunakan tanda kurung.
fun main() {
val square = { x: Int -> x * x }
println(square(5))
println(square(3))
}Pintasan it
Saat lambda memiliki tepat satu parameter, Anda dapat tidak menamainya dan menggunakan it.
Hal ini membuat lambda pendek tetap ringkas dan mudah dibaca.
fun main() {
val nums = listOf(1, 2, 3, 4)
val big = nums.filter { it > 2 }
println(big)
}Beberapa Parameter
Lambda dapat menerima lebih dari satu parameter, yang dipisahkan dengan koma sebelum tanda panah.
Ekspresi terakhir dalam lambda adalah nilai yang dikembalikannya.
fun main() {
val add = { a: Int, b: Int -> a + b }
println(add(4, 6))
}Fungsi Orde Tinggi
Fungsi orde tinggi adalah fungsi yang menerima fungsi lain sebagai parameter atau mengembalikan fungsi.
Tipe fungsi (Int) -> Int berarti "menerima Int, mengembalikan Int". Begitulah cara kerja map dan filter.
Menulis Fungsi Orde Tinggi
Di sini kita mendefinisikan applyTwice, yang menerima sebuah fungsi dan menjalankannya dua kali.
Parameter op memiliki tipe (Int) -> Int.
fun applyTwice(x: Int, op: (Int) -> Int): Int {
return op(op(x))
}
fun main() {
println(applyTwice(3) { it + 1 })
}Sintaks Lambda di Akhir
Saat lambda menjadi argumen terakhir, Anda dapat memindahkannya ke luar tanda kurung.
Itulah sebabnya list.filter { ... } terlihat begitu rapi. Kedua bentuk di bawah ini setara.
fun main() {
val nums = listOf(1, 2, 3)
println(nums.map({ it * 2 }))
println(nums.map { it * 2 })
}Meneruskan Fungsi Bernama
Anda dapat meneruskan fungsi bernama yang sudah ada saat lambda diharapkan dengan menggunakan ::, yang disebut referensi fungsi.
Dengan begitu, Anda tidak perlu menulis ulang logika sebagai lambda.
fun isOdd(n: Int) = n % 2 == 1
fun main() {
val nums = listOf(1, 2, 3, 4)
println(nums.filter(::isOdd))
}Mengembalikan Fungsi
Fungsi orde tinggi juga dapat mengembalikan fungsi. Di sini multiplier membuat lambda perkalian khusus.
Ini adalah bentuk konfigurasi sederhana.
fun multiplier(factor: Int): (Int) -> Int {
return { it * factor }
}
fun main() {
val triple = multiplier(3)
println(triple(5))
}Lambda Menangkap Variabel
Lambda dapat membaca variabel dari cakupan di sekitarnya. Ini disebut closure.
Di sini lambda mengingat bonus bahkan setelah diteruskan ke tempat lain.
fun main() {
val bonus = 10
val nums = listOf(1, 2, 3)
println(nums.map { it + bonus })
}Mengapa Lambda Penting di Android
Di Android, lambda menyatakan panggilan balik dengan rapi. Pendengar klik tombol hanyalah lambda yang Anda serahkan ke kerangka kerja.
Contohnya: button.setOnClickListener { showMenu() } menjalankan kode Anda saat tombol diketuk.
Pemeriksaan Cepat
Uji pemahaman Anda tentang lambda dan fungsi orde tinggi.
Ringkasan
Lambda adalah fungsi tanpa nama yang ditulis secara langsung di dalam kurung kurawal, dengan menggunakan it untuk satu parameter.
Fungsi orde tinggi menerima atau mengembalikan fungsi, sehingga memungkinkan panggilan balik yang rapi dan operasi yang dapat digunakan kembali seperti map dan filter.
Belajar Kotlin 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
- 36
- Pelajaran
- 152
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Lambda dan Fungsi Tingkat Tinggi” gratis?
Ya — teks lengkap “Lambda dan Fungsi Tingkat Tinggi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Lambda dan Fungsi Tingkat Tinggi”?
Teruskan perilaku sebagai nilai. Kamu berlatih Android 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 Android Academy?
Tidak diperlukan pengalaman sebelumnya. Android 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 “Lambda dan Fungsi Tingkat Tinggi” 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 Android Academy ini?
Ya. Setiap pelajaran Android 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
- Daftar dan Daftar yang Dapat Diubah
- Pemetaan dan Set
- map, filter, forEach
- Lambda dan Fungsi Tingkat Tinggi