Jika saya memiliki nullable Boolean b
, saya dapat melakukan perbandingan berikut di Java:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
Di Kotlin, saya bisa mencapai hal yang sama dengan menggunakan !!
operator:
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
Namun, penggunaan dari !!
terasa agak samar bagi saya, menghindari sistem keamanan nol.
Apakah ada pendekatan yang lebih elegan untuk ini?
Sunting Sepertinya saya agak terlalu rumit. Untuk variabel lokal, seperti yang ditunjukkan Banthar , itu berhasil. Namun, Boolean saya b
sebenarnya adalah "properti dengan bidang dukungan" (saya belum benar-benar memahami apa yang diberlakukan ini). Inilah hasilnya:
b
may null
dan salah satu fitur Kotlin adalah Null Safety , yang memberikan kesalahan kompilasi saat mencoba mengevaluasi referensi nullable. Jadi, menggunakan polos b
memberikan kesalahan kompilasi :)
b != nil
mengerti sebelum memeriksa sisi kanan?
val r = b?doSomething() ?: doSomethingElse()
harus bekerja.
!!b
dan tidak sekadarb
? (Saya tidak begitu akrab dengan kotlin, hanya keingintahuan)