let, also, dan run dengan Receiver Nullable
Gunakan fungsi cakupan untuk menjalankan kode hanya ketika suatu nilai tidak null.
let, also, dan run dengan Receiver Nullable adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Fungsi Cakupan dan Nilai yang Dapat Bernilai Null
Fungsi cakupan let, also, dan run sangat cocok dipadukan dengan pemanggilan aman ?. untuk menjalankan blok hanya ketika penerimanya tidak bernilai null.
let dengan Pemanggilan Aman
obj?.let { ... } menjalankan blok hanya jika obj tidak bernilai null; di dalamnya, it merujuk pada nilai yang tidak bernilai null.
fun main() {
val name: String? = "Kotlin"
name?.let {
println("Length: ${it.length}")
println("Upper: ${it.uppercase()}")
}
}let Melewati Blok jika Nilainya Null
Jika penerimanya bernilai null, seluruh blok let akan dilewati.
fun main() {
val name: String? = null
val result = name?.let {
println("never printed")
it.length
}
println(result) // null
}let Mengembalikan Nilai
let mengembalikan ekspresi terakhir dari bloknya sehingga dapat dirangkai dengan Elvis untuk menyediakan nilai bawaan.
fun main() {
val raw: String? = " hello "
val cleaned = raw?.let { it.trim().uppercase() } ?: "(empty)"
println(cleaned) // HELLO
}also untuk Efek Samping
also menjalankan blok untuk efek sampingnya dan mengembalikan penerima asli; fungsi ini sangat berguna untuk pencatatan dalam sebuah rangkaian.
fun main() {
val name: String? = "Alice"
val len = name?.also { println("Processing: $it") }?.length
println("len = $len")
}also Mempertahankan Nilai
Berbeda dengan let, also mengembalikan penerima tanpa perubahan. Gunakan ketika Anda ingin mengamati nilai tanpa mentransformasikannya.
fun main() {
val items: List<Int>? = listOf(1, 2, 3)
items?.also { println("Got list of size ${it.size}") }
?.forEach { println(it) }
}run dengan Pemanggilan Aman
obj?.run { ... } menjalankan blok dengan this terikat pada penerima. Gunakan ketika Anda ingin mengakses anggota tanpa awalan it..
fun main() {
val name: String? = "Kotlin"
val info = name?.run {
"len=$length upper=${uppercase()}"
}
println(info)
}let vs run
let menggunakan it (argumen lambda); run menggunakan this (penerima). Pilih mana yang lebih mudah dibaca.
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)
}Merangkai Beberapa Cakupan
Rangkai fungsi cakupan di sepanjang alur data untuk transformasi bertahap dan pencatatan.
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 (penyaringan) dengan let untuk menjalankan kode berdasarkan predikat.
fun main() {
val name: String? = "Kotlin"
name?.takeIf { it.length > 3 }
?.let { println("Long name: $it") }
}Antipola: if Bersarang
Sebelum fungsi cakupan 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()) }
}Pemeriksaan Singkat
Fungsi cakupan mana yang mengembalikan penerima tanpa perubahan dan terutama digunakan untuk efek samping?
Ringkasan
Gabungkan ?. dengan let (blok mengembalikan nilai dan menggunakan it), run (blok mengembalikan nilai dan menggunakan this), atau also (mengembalikan penerima untuk efek samping). Semuanya melewati eksekusi jika penerimanya bernilai null.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “let, also, dan run dengan Receiver Nullable” gratis?
Ya — teks lengkap “let, also, dan run dengan Receiver Nullable” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “let, also, dan run dengan Receiver Nullable”?
Gunakan fungsi cakupan untuk menjalankan kode hanya ketika suatu nilai tidak null. Kamu berlatih Kotlin 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 Kotlin Academy?
Tidak diperlukan pengalaman sebelumnya. Kotlin 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 3 dari 4.
Berapa lama pelajaran “let, also, dan run dengan Receiver Nullable” 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 Kotlin Academy ini?
Ya. Setiap pelajaran Kotlin 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
- Tipe Nullable dan Modifier ?
- Safe Call ?. dan Elvis ?: dalam Kode Nyata
- let, also, dan run dengan Receiver Nullable
- Operator !!: Kapan dan Mengapa Sebaiknya Dihindari