Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpObSC 26 of 123 menu
◀ ▶

Безопасный вызов у объектов в Kotlin

Оператор ?. обращается к свойству или методу только если ссылка на объект не null. Иначе результат всего выражения - null:

class User(val name: String) fun main() { val user: User? = User("john") val empty: User? = null println(user?.name) println(empty?.name) }

У вложенного объекта свойство тоже может быть пустым. Несколько ?. подряд образуют цепочку: при первом null дальнейшие шаги не выполняются:

class City(val name: String) class User(val city: City?) fun main() { val withCity = User(City("Paris")) val noCity = User(null) println(withCity.city?.name) println(noCity.city?.name) }

Метод nullable-объекта вызывают так же - с ?. перед именем метода:

class City(val name: String) { fun label(): String = "city: $name" } class User(val city: City?) fun main() { val user = User(null) println(user.city?.label()) }

Даны классы City и User из урока. Переменная user типа User? равна null. Выведите название города одним выражением.

Сделайте класс Profile с методом title(). Сделайте класс Account со свойством profile типа Profile?. Выведите результат title() для аккаунта без профиля.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить