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.
Tantangan
MudahTulis 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
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPenugasan GabunganOperator PerbandinganRingkasan: Matematika Sederhana7Dasar input dan output
Fungsi PrintlnTemplate stringInput ReadLineKonversi Tipe DataRingkasan: Tahun hingga PensiunRingkasan: Benar atau Salah10Fungsi
Deklarasikan FungsiParameter dan ArgumenNilai KembalianArgumen BernamaNilai DefaultFungsi Ekspresi TunggalUlasan: Fungsi SigmaUlasan: Fungsi Validasi5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Operator Logika Bagian 3Ternary dengan Ekspresi ifRangkuman: Logika Sederhana8Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input11FizzBuzz dengan Sentuhan Unik
Gambaran Umum GameFungsi FizzBuzz3Kemungkinan Null
Apa Itu Keamanan NullTipe yang Dapat Bernilai NullOperator Pemanggilan AmanOperator ElvisDasar Tantangan FungsiPenegasan Bukan NullRangkuman: Akses Aman6Pengambilan Keputusan
Pernyataan IfIf - ElseIf sebagai EkspresiEkspresi WhenWhen dengan RentangUlasan - Kalkulator Sederhana9Perulangan
For loopWhile loopDo-while loopBreakContinueRentang dalam loopLoop BersarangRingkasan: FaktorialRingkasan: Input DinamisLatihan sendiri: Playground Kotlin