Шаг 69.
Основы Kotlin.
Null-безопасность и исключения. Null-безопасность. Третий вариант: проверить значение на равенство null

    На этом шаге мы рассмотрим использование такого варианта.

    Третий вариант для безопасной работы с null-значениями - это проверить переменную с помощью оператора if. Оператор != проверяет неравенство значения слева значению справа, и его можно использовать для проверки значения на null. Попробуйте в таверне.

fun main() {
    var beverage = readLine()
//    beverage = null
    if (beverage != null) {
        beverage = beverage.capitalize()
    } else {
        println("I can't do that without crashing - beverage was null!")
    }
    println(beverage)
}
Файл с проектом можно взять здесь.


Рис.1. Использование != для проверки на null (Tavern.kt)

    Теперь, если beverage равно null, вы получите следующее сообщение, а не ошибку.

  I can't do that without crashing - beverage was null!

    Оператор безопасного вызова предпочтительнее value != null как более гибкий инструмент, решающий проблему меньшим количеством кода. Например, безопасный вызов легко связать с последующими вызовами функций:

  beverage?.capitalize()?.plus(", large")

    Обратите внимание, что вам не пришлось использовать оператор !!. при обращении к beverage в beverage = beverage.capitalize(). Kotlin распознал, что в ветви if переменная beverage не может иметь значения null и повторная проверка на null не нужна. Эта способность компилятора отслеживать условия внутри выражения if является примером умного приведения типов.

    Когда применять оператор if/else для проверки на null? Этот вариант хорошо подходит при сложных вычислениях и в случаях, если вы предварительно хотите проверить переменную на null. Оператор if/else позволяет выразить сложную логику в простом и понятном виде.

    На следующем шаге мы рассмотрим оператор ?:.




Предыдущий шаг Содержание Следующий шаг