Android Academy · Pelajaran

Pemanggilan Aman dan Elvis

Operator ?. dan ?:.

Pelajaran 2 dari 413 langkah

Pemanggilan Aman dan Elvis adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Melampaui Pemeriksaan if

Memeriksa setiap nilai nullable dengan if memang berhasil, tetapi kode akan cepat menjadi panjang. Kotlin menyediakan operator ringkas yang dirancang untuk menangani null.

Pelajaran ini membahas operator pemanggilan aman ?. dan operator Elvis ?:, dua alat yang akan sering Anda gunakan.

Operator Pemanggilan Aman

Operator ?. memanggil metode hanya jika nilainya bukan null. Jika nilainya null, seluruh ekspresi dievaluasi menjadi null alih-alih menyebabkan kerusakan.

Operator ini adalah cara singkat yang aman untuk pola if-bukan-null.

fun main() {
    val name: String? = "Coddy"
    println(name?.length)
}

Pemanggilan Aman pada Null

Saat penerimanya null, pemanggilan aman berhenti lebih awal dan mengembalikan null. Tidak ada pengecualian yang dilempar.

Di sini hasil yang dicetak adalah kata null, bukan kerusakan.

fun main() {
    val name: String? = null
    println(name?.length)  // prints: null
}

Merangkai Pemanggilan Aman

Anda dapat merangkai ?. melalui beberapa langkah. Jika salah satu penghubungnya null, seluruh rangkaian berhenti dan menghasilkan null.

Ini sangat cocok untuk menavigasi data opsional yang bertingkat.

class Address(val city: String?)
class User(val address: Address?)

fun cityOf(u: User?): String? {
    return u?.address?.city
}

Operator Elvis

Operator Elvis ?: menyediakan nilai cadangan ketika sisi kiri bernilai null. Namanya berasal dari gaya rambut penyanyi tersebut, yang menyerupai simbolnya.

Bacalah sebagai: gunakan nilai kiri, atau gunakan nilai kanan.

fun main() {
    val name: String? = null
    val shown = name ?: "Guest"
    println(shown)  // prints: Guest
}

Elvis dengan Pemanggilan Aman

Pemanggilan aman dan Elvis bekerja sangat baik bersama. Gunakan ?. untuk mengakses bagian dalam suatu nilai dan ?: untuk memberikan nilai default jika ada bagian yang bernilai null.

Pola ini mengubah hasil nullable menjadi hasil yang dijamin non-null.

fun main() {
    val name: String? = null
    val len: Int = name?.length ?: 0
    println(len)  // prints: 0
}

Contoh Panjang Default

Di sini tipe hasilnya adalah Int biasa, bukan Int?. Operator Elvis menghapus sifat nullability.

Setelah ?: dengan nilai cadangan non-null, kompilator mengetahui bahwa nilainya tidak mungkin null.

val title: String? = "Kotlin"
val length: Int = title?.length ?: 0
// length is a non-null Int

Elvis untuk Pengembalian Lebih Awal

Karena return dan throw merupakan ekspresi di Kotlin, Anda dapat menempatkannya di sebelah kanan Elvis.

Ini adalah cara yang jelas untuk keluar lebih awal ketika nilai yang diperlukan tidak ada.

fun process(input: String?) {
    val text = input ?: return
    println(text.uppercase())
}

Pemanggilan Aman dengan let

Gabungkan ?. dengan let untuk menjalankan blok hanya ketika nilainya bukan null. Di dalamnya, nilai tersebut bersifat non-null dan diberi nama it.

Ini adalah idiom umum untuk bertindak terhadap nilai opsional.

fun main() {
    val email: String? = "a@b.com"
    email?.let {
        println("Sending to " + it)
    }
}

Menggabungkan Semuanya

Program singkat dapat menunjukkan kerja sama pemanggilan aman dan Elvis untuk menghasilkan pesan yang ramah.

Perhatikan bahwa tidak diperlukan pernyataan if, tetapi kode tetap tidak berisiko mengalami kerusakan akibat null.

fun main() {
    val nickname: String? = null
    val display = nickname?.uppercase() ?: "ANONYMOUS"
    println(display)
}

Kapan Menggunakan yang Mana

Gunakan ?. saat Anda ingin hasil null mengalir tanpa menimbulkan masalah. Gunakan ?: saat Anda ingin mengganti null dengan nilai default yang konkret.

Bersama-sama, keduanya mencakup sebagian besar penanganan null sehari-hari tanpa pemeriksaan yang panjang.

val count = list?.size ?: 0
// safe call reads size, Elvis defaults to 0

Pemeriksaan Cepat

Uji pemahaman Anda tentang pemanggilan aman dan operator Elvis.

Ringkasan

Pemanggilan aman ?. memanggil anggota hanya jika penerimanya bukan null; jika tidak, hasilnya adalah null. Operator Elvis ?: mengganti null dengan nilai cadangan.

Merangkai keduanya menghilangkan sifat nullable dengan rapi. Selanjutnya Anda akan mempelajari fungsi cakupan seperti let dan also secara lebih mendalam.

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 “Pemanggilan Aman dan Elvis” gratis?

Ya — teks lengkap “Pemanggilan Aman dan Elvis” 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 “Pemanggilan Aman dan Elvis”?

Operator ?. dan ?:. 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 2 dari 4.

Berapa lama pelajaran “Pemanggilan Aman dan Elvis” 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. Tipe Nullable vs Non-Null
  2. Pemanggilan Aman dan Elvis
  3. Fungsi Scope let, also, dan
  4. Menghindari NullPointerExceptions
← Kembali ke Android Academy