Оператор Элвиса
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 15 из 93.
Оператор безопасного вызова помогает избежать сбоев, но иногда вместо null нужно получить настоящее значение. Оператор Элвиса ?: позволяет указать значение по умолчанию, если выражение равно null.
Синтаксис прост: поставь ?: после выражения, допускающего значение null, а затем укажи резервное значение:
fun main() {
val name: String? = null
val displayName = name ?: "Guest"
println(displayName) // Выводит: Guest
}Если левая часть не равна null, используется это значение. Если она равна null, результатом становится правая часть. Это отлично работает с безопасными вызовами:
fun main() {
val text: String? = null
val length = text?.length ?: 0
println(length) // Выводит: 0
val greeting: String? = "Hello"
val greetingLength = greeting?.length ?: 0
println(greetingLength) // Выводит: 5
}Оператор получил своё название потому, что ?: сбоку напоминает причёску Элвиса. Что ещё важнее, он позволяет удобным способом преобразовывать nullable-типы в значения, не допускающие null, с разумными значениями по умолчанию.
Задание
ЛегкоУ посылки есть необязательная метка отслеживания и необязательное место назначения. В стартовом коде предоставлены оба значения, допускающие null. Используй ?:, чтобы выбрать "Pending", если метка отслеживания отсутствует, и "Unassigned", если место назначения отсутствует. Выведи выбранную метку, а затем выбранное место назначения на отдельных строках.
Попробуйте сами
fun main() {
val trackingLabel: String? = null
val destination: String? = "Harbor"
// Выберите и выведите два значения для отображения.
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеОператоры сравненияПовторение — простая математика7Базовый ввод-вывод
Функция PrintlnШаблоны строкВвод ReadLineПреобразование типовПовторение — лет до выхода на пенсиюПовторение — правда или ложь10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияИменованные аргументыЗначения по умолчаниюФункции с одним выражениемПовторение — функция SigmaПовторение — функция валидации13Итерация по последовательностям
Итерация по элементамМетод WithIndexИтерация по строкам, ч. 1Итерация по строкам, ч. 2Повторение — индексированные буквы2Переменные
Val и VarВывод типовЧислаСтрокаЛогическое значениеСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Логические операторы, часть 3Тернарный оператор с выражением ifПовторение — простая логика8Калькулятор разделения счёта
Приветственное сообщениеВвод данных3Обработка null
Что такое безопасность nullТипы, допускающие nullОператор безопасного вызоваОператор ЭлвисаОсновы задания на функцииУтверждение ненулевого значенияПовторение — безопасный доступ6Принятие решений
Инструкция ifIf — ElseIf как выражениеВыражение whenWhen с диапазонамиПовторение — простой калькулятор9Циклы
Цикл ForЦикл WhileЦикл Do-WhileBreakContinueДиапазоны в циклахВложенный циклПовторение — факториалПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Kotlin