Типы, допускающие null
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 13 из 93.
Иногда вам действительно нужна переменная, которая может содержать «ничего». Например, второго имени пользователя может не существовать, или поиск может не вернуть результатов. Kotlin позволяет это благодаря типам, допускающим значение null.
Чтобы сделать тип допускающим значение null, добавьте ? после имени типа:
fun main() {
var middleName: String? = "Marie"
middleName = null // Теперь это разрешено!
val age: Int? = null // Может хранить Int или null
}? сообщает Kotlin: «Эта переменная может иметь значение null, поэтому обращайся с ней осторожно». Без ? тип является не допускающим значения null и никогда не может содержать null.
Важно: Типы, допускающие значение null, и типы, не допускающие значение null, различаются. Нельзя напрямую присвоить значение, допускающее null, переменной, не допускающей null:
fun main() {
val nullableName: String? = "Alice"
val regularName: String = nullableName // Ошибка!
}Это различие намеренно. Оно заставляет вас обработать возможность наличия значения null, прежде чем использовать это значение. В следующих уроках вы узнаете о безопасных способах, которые Kotlin предоставляет для работы со значениями, допускающими значение null.
Задание
ЛегкоОбъяви следующие nullable-переменные:
- Nullable-переменную типа
Stringс именемnicknameи значением"Shadow" - Nullable-переменную типа
Intс именемageи значениемnull - Nullable-переменную типа
Doubleс именемbalanceи значением99.5
Затем выведи все три значения в отдельных строках с помощью println().
Не забудь использовать
?после имени типа, чтобы сделать его nullable. Вывод значенияnullотобразит словоnull.
Попробуйте сами
fun main() {
// TODO: Объявите следующие nullable-переменные:
// 1. Nullable String с именем 'nickname' со значением "Shadow"
// 2. Nullable Int с именем 'age' со значением null
// 3. Nullable Double с именем 'balance' со значением 99.5
// Затем выведите все три значения на отдельных строках
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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