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 bsebenarnya adalah "properti dengan bidang dukungan" (saya belum benar-benar memahami apa yang diberlakukan ini). Inilah hasilnya:
bmay nulldan salah satu fitur Kotlin adalah Null Safety , yang memberikan kesalahan kompilasi saat mencoba mengevaluasi referensi nullable. Jadi, menggunakan polos bmemberikan kesalahan kompilasi :)
b != nilmengerti sebelum memeriksa sisi kanan?
val r = b?doSomething() ?: doSomethingElse()harus bekerja.

!!bdan tidak sekadarb? (Saya tidak begitu akrab dengan kotlin, hanya keingintahuan)