Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
⊗ktOpObNl 25 of 123 menu
◀ ▶

Nullable-объекты в Kotlin

Переменная типа User? может хранить объект класса User или null. Без вопросительного знака в типе null присвоить нельзя:

class User(val name: String)

Создадим объект:

val found: User? = User("john") val missing: User? = null println(found?.name) println(missing)

Свойство класса тоже может быть nullable. Тогда у объекта поле иногда пустое:

class User(val name: String) { var manager: User? = null }

Создадим объекты:

val boss = User("eric") val worker = User("john") worker.manager = boss println(worker.manager?.name)

Прямой доступ к свойству nullable-ссылки без проверки компилятор не пропустит. Сначала нужно убедиться, что ссылка не null, либо применить безопасный вызов ?.:

class User(val name: String)

Создадим объект:

val user: User? = null // println(user.name) // ошибка компиляции println(user?.name)

Объявите var leader типа User?. Сначала запишите объект User, затем присвойте null.

Сделайте класс Team со свойством captain типа User?. Создайте команду без капитана и выведите имя капитана безопасным обращением.

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