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

Цепочка с пустым значением в Kotlin

У nullable-значения оператор ?. перед scope-вызовом пропускает лямбду, если ссылка равна null. Весь такой фрагмент тогда дает null, и цепочка дальше не ломается:

class Tag(var text: String = "") fun main() { val source: Tag? = null val same = source?.apply { text = "skip" } println(same) }

При непустой ссылке блок выполняется как обычно, а вызов возвращает объект после настройки:

class Tag(var text: String = "") fun main() { val source: Tag? = Tag() val same = source?.apply { text = "ok" } println(same?.text) }

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

fun main() { val nick: String? = null val upper = nick?.also { println(it) }?.uppercase() println(upper) }

Класс Caption имеет изменяемое поле text. Переменная типа Caption? равна null. Запишите в поле "x" через безопасную цепочку и выведите ссылку после вызова.

Дана nullable-строка "node". Выведите ее длину в верхнем регистре одной цепочкой с побочным выводом исходного текста. Повторите для null и сравните оба итога.

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