Якщо у мене є нульовий 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
? (Я не такий знайомий з котліном, просто