Android Academy · Pelajaran

Lambda dan Fungsi Tingkat Tinggi

Teruskan perilaku sebagai nilai.

Pelajaran 4 dari 413 langkah

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.

Gratis untuk memulai

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

  1. Daftar dan Daftar yang Dapat Diubah
  2. Pemetaan dan Set
  3. map, filter, forEach
  4. Lambda dan Fungsi Tingkat Tinggi
← Kembali ke Android Academy