Kotlin Academy · Pelajaran

let, also dan run dengan Penerima Boleh-Nol

Gunakan fungsi skop untuk melaksanakan kod hanya apabila sesuatu nilai bukan nol.

Pelajaran 3 daripada 413 langkah

let, also dan run dengan Penerima Boleh-Nol ialah pelajaran Kotlin Academy percuma di CoddyKit. Ini ialah pelajaran 3 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 Kotlin Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kotlin Academy merangkumi sejumlah 4 pelajaran.

Fungsi Skop dan Nilai Boleh Null

Fungsi skop let, also dan run sangat sesuai digandingkan dengan panggilan selamat ?. untuk melaksanakan blok hanya apabila penerimanya bukan null.

let dengan Panggilan Selamat

obj?.let { ... } menjalankan blok hanya jika obj bukan null; di dalam blok, it merujuk kepada nilai bukan null tersebut.

fun main() {
    val name: String? = "Kotlin"
    name?.let {
        println("Length: ${it.length}")
        println("Upper: ${it.uppercase()}")
    }
}

let Melangkau Blok apabila Null

Jika penerima bernilai null, seluruh blok let akan dilangkau.

fun main() {
    val name: String? = null
    val result = name?.let {
        println("never printed")
        it.length
    }
    println(result) // null
}

let Memulangkan Nilai

let memulangkan ungkapan terakhir dalam bloknya — ia boleh dirangkaikan dengan Elvis untuk menyediakan nilai lalai.

fun main() {
    val raw: String? = "  hello "
    val cleaned = raw?.let { it.trim().uppercase() } ?: "(empty)"
    println(cleaned) // HELLO
}

also untuk Kesan Sampingan

also menjalankan blok untuk kesan sampingannya dan memulangkan penerima asal — sangat sesuai untuk pengelogan dalam rangkaian.

fun main() {
    val name: String? = "Alice"
    val len = name?.also { println("Processing: $it") }?.length
    println("len = $len")
}

also Mengekalkan Nilai

Tidak seperti let, also memulangkan penerima tanpa perubahan. Gunakannya apabila anda mahu melihat nilai tanpa mengubahnya.

fun main() {
    val items: List<Int>? = listOf(1, 2, 3)
    items?.also { println("Got list of size ${it.size}") }
           ?.forEach { println(it) }
}

run dengan Panggilan Selamat

obj?.run { ... } menjalankan blok dengan this terikat kepada penerima. Gunakannya apabila anda mahu mengakses ahli tanpa awalan it..

fun main() {
    val name: String? = "Kotlin"
    val info = name?.run {
        "len=$length upper=${uppercase()}"
    }
    println(info)
}

let berbanding run

let menggunakan it (argumen lambda); run menggunakan this (penerima). Pilih yang menghasilkan bacaan lebih jelas.

class User(val name: String, val age: Int)
fun main() {
    val user: User? = User("Ada", 35)
    user?.let { "${it.name} age ${it.age}" }.also(::println)
    user?.run { "$name age $age" }.also(::println)
}

Merangkaikan Beberapa Skop

Rangkaikan fungsi skop merentasi saluran data untuk melakukan transformasi langkah demi langkah dan pengelogan.

fun main() {
    val raw: String? = "  hello  "
    val result = raw
        ?.also { println("raw: '$it'") }
        ?.let { it.trim() }
        ?.also { println("trimmed: '$it'") }
        ?.uppercase()
    println(result) // HELLO
}

let dengan takeIf

Gabungkan takeIf (penapisan) dengan let untuk pelaksanaan berasaskan predikat.

fun main() {
    val name: String? = "Kotlin"
    name?.takeIf { it.length > 3 }
        ?.let { println("Long name: $it") }
}

Corak Anti: if Bersarang

Sebelum fungsi skop digunakan:

fun main() {
    val name: String? = "Alice"
    // OLD WAY:
    if (name != null) {
        val upper = name.uppercase()
        println(upper)
    }
    // NEW WAY:
    name?.let { println(it.uppercase()) }
}

Semakan Pantas

Fungsi skop manakah yang memulangkan penerima tanpa perubahan dan digunakan terutamanya untuk kesan sampingan?

Ringkasan

Gabungkan ?. dengan let (blok memulangkan nilai dan menggunakan it), run (blok memulangkan nilai dan menggunakan this) atau also (memulangkan penerima dan digunakan untuk kesan sampingan). Kesemuanya melangkau pelaksanaan jika penerima bernilai null.

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
51
Pelajaran
203

Soalan Lazim

Adakah pelajaran “let, also dan run dengan Penerima Boleh-Nol” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kotlin Academy, termasuk “let, also dan run dengan Penerima Boleh-Nol”, 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 Kotlin Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “let, also dan run dengan Penerima Boleh-Nol”?

Gunakan fungsi skop untuk melaksanakan kod hanya apabila sesuatu nilai bukan nol. Anda berlatih Kotlin 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 Kotlin Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kotlin 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 3 daripada 4.

Berapa lamakah pelajaran “let, also dan run dengan Penerima Boleh-Nol” 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 Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin 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. Jenis Boleh-Nol dan Pengubah ?
  2. Panggilan Selamat ?. dan Elvis ?: dalam Kod Sebenar
  3. let, also dan run dengan Penerima Boleh-Nol
  4. Operator !!: Bila dan Mengapa Perlu Mengelakkannya
← Kembali ke Kotlin Academy