Android Academy · Pelajaran

Lambda dan Fungsi Tertib Lebih Tinggi

Hantar tingkah laku sebagai nilai.

Pelajaran 4 daripada 413 langkah

Lambda dan Fungsi Tertib Lebih Tinggi ialah pelajaran Android Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Android Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Apakah Lambda?

Lambda ialah fungsi kecil yang boleh anda tulis sebaris tanpa memberikannya nama.

Balutnya dalam pendakap keriting: { x -> x + 1 }. Lambda membolehkan anda menghantar tingkah laku seperti data.

Anda telah menggunakannya bersama map dan filter.

Menyimpan Lambda dalam Pemboleh Ubah

Lambda ialah nilai, jadi anda boleh menyimpannya dalam pemboleh ubah dan memanggilnya kemudian.

Panggilnya seperti fungsi dengan menggunakan tanda kurungan.

fun main() {
    val square = { x: Int -> x * x }
    println(square(5))
    println(square(3))
}

Pintasan it

Apabila lambda menerima tepat satu parameter, anda boleh tidak menamakannya dan menggunakan it.

Ini menjadikan lambda pendek lebih padat dan mudah dibaca.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    val big = nums.filter { it > 2 }
    println(big)
}

Berbilang Parameter

Lambda boleh menerima lebih daripada satu parameter, dipisahkan dengan koma sebelum anak panah.

Ungkapan terakhir dalam lambda ialah nilai pulangannya.

fun main() {
    val add = { a: Int, b: Int -> a + b }
    println(add(4, 6))
}

Fungsi Susunan Tinggi

Fungsi susunan tinggi ialah fungsi yang menerima fungsi lain sebagai parameter atau mengembalikan fungsi lain.

Jenis fungsi (Int) -> Int bermaksud "menerima Int dan mengembalikan Int". Beginilah cara map dan filter berfungsi.

Menulis Fungsi Susunan Tinggi

Di sini, kami mentakrifkan applyTwice, yang menerima fungsi dan menjalankannya dua kali.

Parameter op mempunyai jenis (Int) -> Int.

fun applyTwice(x: Int, op: (Int) -> Int): Int {
    return op(op(x))
}

fun main() {
    println(applyTwice(3) { it + 1 })
}

Sintaks Lambda Hujung

Apabila lambda ialah argumen terakhir, anda boleh memindahkannya ke luar tanda kurungan.

Itulah sebabnya list.filter { ... } kelihatan begitu kemas. Kedua-dua bentuk di bawah adalah setara.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.map({ it * 2 }))
    println(nums.map { it * 2 })
}

Menghantar Fungsi Bernama

Anda boleh menghantar fungsi bernama sedia ada apabila lambda dijangka dengan menggunakan ::, yang dipanggil rujukan fungsi.

Ini mengelakkan anda daripada menulis semula logik 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 susunan tinggi juga boleh mengembalikan fungsi. Di sini, multiplier membina lambda pendaraban tersuai.

Ini ialah bentuk konfigurasi yang mudah.

fun multiplier(factor: Int): (Int) -> Int {
    return { it * factor }
}

fun main() {
    val triple = multiplier(3)
    println(triple(5))
}

Lambda Menangkap Pemboleh Ubah

Lambda boleh membaca pemboleh ubah daripada skop sekeliling. Ini dipanggil penutupan.

Di sini, lambda mengingati bonus walaupun selepas dihantar ke tempat lain.

fun main() {
    val bonus = 10
    val nums = listOf(1, 2, 3)
    println(nums.map { it + bonus })
}

Kepentingan Lambda pada Android

Pada Android, lambda menyatakan panggilan balik dengan kemas. Pendengar klik butang hanyalah lambda yang anda serahkan kepada rangka kerja.

Contohnya: button.setOnClickListener { showMenu() } menjalankan kod anda apabila butang diketuk.

Semakan Pantas

Uji pemahaman anda tentang lambda dan fungsi susunan tinggi.

Imbas Kembali

Lambda ialah fungsi sebaris tanpa nama yang ditulis dalam pendakap, menggunakan it untuk satu parameter.

Fungsi susunan tinggi menerima atau mengembalikan fungsi, lalu membolehkan panggilan balik yang kemas serta operasi boleh guna semula seperti map dan filter.

Percuma untuk bermula

Pelajari Kotlin dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
36
Pelajaran
152

Soalan Lazim

Adakah pelajaran “Lambda dan Fungsi Tertib Lebih Tinggi” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Android Academy, termasuk “Lambda dan Fungsi Tertib Lebih Tinggi”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Android Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Lambda dan Fungsi Tertib Lebih Tinggi”?

Hantar tingkah laku sebagai nilai. Anda berlatih Android Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Android Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Android Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Lambda dan Fungsi Tertib Lebih Tinggi” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Android Academy ini?

Ya. Setiap pelajaran Android Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Senarai dan Senarai Boleh Ubah
  2. Peta dan Set
  3. map, filter, forEach
  4. Lambda dan Fungsi Tertib Lebih Tinggi
← Kembali ke Android Academy