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

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

    Бывает, что без типа с поддержкой null никак не обойтись. Например, используя значение, возвращаемое чужим кодом, никогда нельзя быть уверенным, что он не вернет null. В таких случаях в первую очередь следует использовать оператор безопасного вызова (?.) функции. Попробуйте его в Tavern.kt.

fun main() {
    var beverage = readLine()?.capitalize()
//    beverage = null
    println(beverage)
}
Файл с проектом можно взять здесь.


Рис.1. Использование оператора безопасного вызова (Tavern.kt)

    Обратите внимание, что Kotlin не сообщил об ошибке. Когда компилятор встречает оператор безопасного вызова, он знает, что надо проверить значение на null. Обнаружив null, он пропустит вызов функции и просто вернет null. Например, если beverage хранит значение, отличное от null, в результате вы получите название напитка, начинающееся с прописной буквы. (Попробуйте - и увидите.) Если beverage хранит null, функция capitalize() не будет вызвана. В таких случаях, как в примере выше, мы говорим, что функция capitalize() вызывается "безопасно" и риска NullPointerException не существует.

    На следующем шаге мы рассмотрим использование безопасного вызова с let.




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