Menu
CoddyTech

Penegasan Bukan Null

Termasuk bagian Dasar-Dasar dalam perjalanan Kotlin di Coddy. Pelajaran 17 dari 93.

Operator safe call dan operator Elvis menangani null dengan baik, tetapi terkadang kamu benar-benar yakin bahwa nilai nullable tidak null pada bagian tertentu dalam kodemu. Operator penegasan non-null !! memungkinkanmu memberi tahu Kotlin: "Aku menjamin bahwa nilai ini tidak null."

fun main() {
    val name: String? = "Alice"
    val length = name!!.length  // Mengubah String? menjadi String
    println(length)  // Menampilkan: 5
}

Operator !! mengubah tipe yang dapat bernilai null menjadi tipe yang tidak dapat bernilai null. Namun, jika nilainya memang null, programmu akan mengalami crash dengan NullPointerException:

fun main() {
    val name: String? = null
    val length = name!!.length  // Programmu error di sini!
}

Kapan menggunakannya: Gunakan !! hanya jika logikamu menjamin bahwa nilai tidak mungkin null, tetapi compiler tidak dapat memastikannya. Dalam kebanyakan kasus, lebih baik gunakan pemanggilan aman ?. atau operator Elvis ?:. Pernyataan bahwa nilai tidak null sebaiknya menjadi pilihan terakhir, bukan pilihan pertamamu.

challenge icon

Tantangan

Mudah

Tulis fungsi getUppercaseLength yang menerima parameter text dan mengembalikan panjang versi huruf kapitalnya.

Fungsi ini menerima nilai string yang tidak null, tetapi tipe parameternya nullable (String?). Gunakan operator pernyataan non-null !! untuk mengubahnya menjadi tipe non-nullable, lalu rantai method uppercase() dan ambil length.

Parameter:

  • text (String?): String nullable yang dijamin berisi nilai

Mengembalikan: Panjang versi huruf kapital dari teks (Int)

Catatan: Untuk tantangan ini, input akan selalu berupa string yang valid, tidak pernah null. Ini menyimulasikan skenario ketika kamu tahu nilainya ada, tetapi compiler tidak dapat memverifikasinya.

Coba sendiri

fun getUppercaseLength(text: String?): Int {
    // Tulis kodemu di sini
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Kotlin