Якщо у мене є нульовий Boolean b, я можу зробити таке порівняння на Java:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
У Котліні я можу досягти цього за допомогою !!оператора:
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
Однак використання !!мені здається трохи схематичним, обходячи нульову систему безпеки.
Чи є для цього більш елегантний підхід?
Редагування Здається, я трохи спростив. Для локальних змінних, як показує Бантар , це працює. Однак мій булевий bнасправді є "властивістю із полем резервного" (я не дуже швидкий, але все, що це нав'язує). Це результат:
bможливо, nullоднією з особливостей Котліна є Null Safety , яка дає помилки компіляції при спробі оцінки нульових посилань. Таким чином, за допомогою звичайної bпомилки компіляції :)
b != nilзрозуміти, перш ніж перевірити праву сторону?
val r = b?doSomething() ?: doSomethingElse()має працювати.

!!bа не простоb? (Я не такий знайомий з котліном, просто