Safe Call ?. dan Elvis ?: dalam Kode Nyata
Rangkai safe call dan sediakan nilai pengganti menggunakan operator Elvis.
Safe Call ?. dan Elvis ?: dalam Kode Nyata adalah pelajaran Kotlin 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 Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.
Dua Operator, Dampak Besar
Pemanggilan aman ?. memanggil anggota hanya jika penerimanya tidak bernilai null. Operator Elvis ?: menyediakan nilai pengganti ketika sisi kiri bernilai null.
Dasar-Dasar Pemanggilan Aman
x?.member menghasilkan null jika x bernilai null; jika tidak, ekspresi tersebut mengakses member seperti biasa.
fun main() {
val name: String? = "Kotlin"
val len: Int? = name?.length
println(len) // 6
val nope: String? = null
println(nope?.length) // null
}Dasar-Dasar Operator Elvis
x ?: default mengembalikan x jika tidak bernilai null; jika tidak, ekspresi tersebut mengembalikan default di sebelah kanan.
fun main() {
val name: String? = null
val display = name ?: "Anonymous"
println(display) // Anonymous
}Menggabungkan Pemanggilan Aman dan Elvis
Idiom umum: obj?.member ?: default untuk membaca nilai atau menggunakan nilai pengganti.
fun main() {
val name: String? = null
val length = name?.length ?: 0
println("length = $length") // 0
}Merangkai Pemanggilan Aman
Rangkai ?. melalui beberapa tingkat; seluruh ekspresi akan langsung menghasilkan null jika salah satu tautannya bernilai null.
class Address(val city: String?)
class User(val address: Address?)
fun main() {
val u: User? = User(Address(null))
val city = u?.address?.city ?: "Unknown"
println(city) // Unknown
}Melemparkan Pengecualian di Sisi Kanan Elvis
Sisi kanan Elvis dapat berupa ekspresi apa pun, termasuk throw; hal ini berguna untuk pemeriksaan nilai yang wajib tersedia.
fun loadConfig(path: String?): String {
val p = path ?: throw IllegalArgumentException("path required")
return "loaded $p"
}
fun main() {
println(loadConfig("/etc/app"))
// loadConfig(null) // throws
}Pemanggilan Aman dengan Metode
Pemanggilan aman dapat digunakan pada metode apa pun, bukan hanya akses properti.
fun main() {
val raw: String? = " hello "
val cleaned = raw?.trim()?.uppercase() ?: ""
println(cleaned) // HELLO
}Pemanggilan Aman dalam Kondisi
Anda dapat menggunakan pemanggilan aman di dalam kondisi. Gabungkan dengan Elvis untuk menyediakan nilai Boolean bawaan.
fun main() {
val name: String? = "Alice"
if (name?.startsWith("A") == true) {
println("Starts with A")
}
}Elvis dengan return
Gunakan Elvis dengan return untuk klausa penjaga: keluar lebih awal jika nilai yang diperlukan bernilai null.
fun process(input: String?) {
val safe = input ?: return
println("processing $safe")
}
fun main() {
process("abc")
process(null) // returns silently
}Elvis dengan continue/break
Di dalam perulangan, Elvis dapat langsung beralih ke continue atau break untuk menangani null secara ringkas.
fun main() {
val items: List<String?> = listOf("a", null, "b", null, "c")
for (item in items) {
val v = item ?: continue
print("$v ")
}
println() // a b c
}Praktik: Pencarian Konfigurasi
Pemanggilan aman dan Elvis dapat digabungkan menjadi satu baris untuk membaca konfigurasi opsional dengan nilai bawaan.
class Config(val timeoutMs: Int?, val host: String?)
fun main() {
val cfg: Config? = Config(null, "prod.example.com")
val timeout = cfg?.timeoutMs ?: 5000
val host = cfg?.host ?: "localhost"
println("$host @ $timeout ms")
}Pemeriksaan Singkat
Menjadi apa hasil evaluasi user?.email ?: "unknown" ketika user bernilai null?
Ringkasan
Gabungkan pemanggilan aman (?.) dan Elvis (?:) untuk membuat kode yang aman terhadap null secara ringkas. Gunakan Elvis dengan throw atau return untuk klausa penjaga yang keluar lebih awal ketika data tidak tersedia.
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
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Safe Call ?. dan Elvis ?: dalam Kode Nyata” gratis?
Ya — teks lengkap “Safe Call ?. dan Elvis ?: dalam Kode Nyata” 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 “Safe Call ?. dan Elvis ?: dalam Kode Nyata”?
Rangkai safe call dan sediakan nilai pengganti menggunakan operator Elvis. 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 2 dari 4.
Berapa lama pelajaran “Safe Call ?. dan Elvis ?: dalam Kode Nyata” 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