Jeśli mam wartość null Boolean b, mogę wykonać następujące porównanie w Javie:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
W Kotlinie to samo mogę osiągnąć za pomocą !!operatora:
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
Jednak użycie !!jest dla mnie trochę szkicowe, omijając zerowy system bezpieczeństwa.
Czy jest na to bardziej eleganckie podejście?
Edycja Wygląda na to, że trochę przesadziłem. W przypadku zmiennych lokalnych, jak pokazuje Banthar , działa. Jednak moja wartość logiczna bjest w rzeczywistości „właściwością z polem zapasowym” (nie jestem jeszcze na bieżąco z tym, co to narzuca). Oto wynik:
bmoże być, nulla jedną z funkcji Kotlina jest Null Safety , która daje błędy kompilacji podczas próby oceny referencji dopuszczających wartość null. Tak więc użycie zwykłego bdaje błąd kompilacji :)
b != nilzłapiesz tego przed sprawdzeniem prawej strony?
val r = b?doSomething() ?: doSomethingElse()powinno działać.

!!ba nie po prostub? (Nie jestem zbyt zaznajomiony z kotlinem, tylko ciekawostki)