Fungsi Scope let, also, dan
Bekerja dengan nilai nullable.
Fungsi Scope let, also, dan adalah pelajaran Android 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 Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.
Apa Itu Fungsi Cakupan?
Fungsi cakupan memungkinkan Anda menjalankan blok kode dalam konteks suatu objek. Fungsi ini membuat kode lebih ringkas, terutama saat menangani nilai yang dapat bernilai null.
Pelajaran ini berfokus pada let dan also, dua fungsi yang paling berguna untuk keamanan null, serta kaitannya dengan operator pemanggilan aman.
Fungsi let
let menjalankan sebuah blok dan meneruskan objek sebagai it. Fungsi ini mengembalikan apa pun yang dikembalikan oleh blok tersebut.
Fungsi ini berguna untuk mengubah suatu nilai atau membatasi cakupan nama sementara.
fun main() {
val length = "Kotlin".let { it.length }
println(length) // prints: 6
}let untuk Keamanan Null
Gabungkan ?. dengan let untuk menjalankan sebuah blok hanya ketika suatu nilai tidak null. Blok tersebut dijalankan sekali, dengan nilai itu sebagai it.
Jika nilainya null, blok tersebut dilewati sepenuhnya.
fun main() {
val name: String? = "Ada"
name?.let {
println("Hello, " + it)
}
}Dilewati Saat Null
Ketika penerima bernilai null, ?.let tidak melakukan apa pun. Blok tersebut tidak pernah dijalankan.
Program ini tidak mencetak apa pun karena name bernilai null.
fun main() {
val name: String? = null
name?.let {
println("Hello, " + it)
}
}Mengganti Nama it
Anda dapat memberikan nama parameter yang lebih jelas daripada it. Hal ini meningkatkan keterbacaan dalam blok yang lebih panjang.
Gunakan tanda panah untuk memberi nama secara eksplisit.
val name: String? = "Bo"
name?.let { value ->
println(value.uppercase())
}Fungsi also
also juga meneruskan objek sebagai it, tetapi mengembalikan objek asli, bukan hasil blok tersebut.
Fungsi ini sangat cocok untuk efek samping seperti logging, sambil mempertahankan nilai agar tetap tidak berubah dalam suatu rangkaian.
fun main() {
val n = 5.also { println("got " + it) }
println(n) // prints: 5
}Nilai Pengembalian let vs also
Perbedaan utamanya: let mengembalikan hasil blok, sedangkan also mengembalikan objek asli.
Pilih let untuk mengubah nilai, dan also untuk memeriksanya tanpa mengubah nilai tersebut.
val a = "hi".let { it.length } // a = 2 (Int)
val b = "hi".also { it.length } // b = "hi" (String)also untuk Logging
Karena also mengembalikan objek, fungsi ini dapat ditempatkan dalam suatu rangkaian untuk memeriksa nilai di tengah alur.
Di sini kita mencatat nilai yang dapat bernilai null hanya jika nilai tersebut tersedia, lalu terus menggunakannya.
fun main() {
val token: String? = "abc"
val result = token?.also { println("token: " + it) }
println(result)
}let dengan Elvis
Pasangkan ?.let dengan operator Elvis untuk memberikan alternatif ketika nilainya null.
Blok tersebut menghasilkan nilai jika nilai tersedia; bagian Elvis menangani kasus null.
fun main() {
val raw: String? = null
val out = raw?.let { it.trim() } ?: "empty"
println(out) // prints: empty
}Memilih Fungsi Cakupan
Untuk keamanan null, gunakan let ketika Anda ingin mengubah atau menggunakan nilai yang tidak null dalam sebuah blok. Gunakan also ketika Anda menginginkan efek samping, tetapi harus mempertahankan objek asli.
Keduanya berpadu secara alami dengan operator pemanggilan aman untuk mencegah galat akibat null.
user?.let { save(it) } // transform/use
user?.also { log(it) } // side effect, keep userContoh Gabungan
Program ini menggunakan ?.let untuk membuat pesan dan Elvis sebagai cadangan. Contoh ini menunjukkan pola penggunaan Kotlin yang aman terhadap null dalam keseharian.
Tidak ada pemeriksaan null yang eksplisit, tetapi kode ini sepenuhnya aman.
fun main() {
val city: String? = "Goreme"
val label = city?.let { "City: " + it } ?: "Unknown"
println(label)
}Pemeriksaan Singkat
Uji pemahaman Anda tentang let dan also.
Ringkasan
Fungsi cakupan menjalankan sebuah blok dalam konteks objek. let meneruskan objek sebagai it dan mengembalikan hasil blok; also meneruskan it dan mengembalikan objek asli.
Dengan ?.let, Anda bertindak pada suatu nilai hanya ketika nilai tersebut tidak null. Selanjutnya, Anda akan menggabungkan gagasan-gagasan ini untuk sepenuhnya menghindari NullPointerExceptions.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Fungsi Scope let, also, dan” gratis?
Ya — teks lengkap “Fungsi Scope let, also, dan” 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 “Fungsi Scope let, also, dan”?
Bekerja dengan nilai nullable. 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 3 dari 4.
Berapa lama pelajaran “Fungsi Scope let, also, dan” 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
- Tipe Nullable vs Non-Null
- Pemanggilan Aman dan Elvis
- Fungsi Scope let, also, dan
- Menghindari NullPointerExceptions