Что такое безопасность null
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 12 из 93.
Во многих языках программирования одна из самых распространённых ошибок — попытка получить доступ к тому, чего не существует: значению null. Это происходит, когда переменная содержит «ничего», а не фактические данные.
Представьте, что вы запрашиваете имя пользователя, но он его не указал. Если ваш код попытается использовать это пустое имя, не проверив его сначала, ваша программа завершится с ошибкой. Этот тип ошибки настолько распространён, что его назвали «ошибкой на миллиард долларов».
Решение Kotlin: безопасность работы с null
Kotlin был разработан, чтобы устранить эти сбои. По умолчанию переменные в Kotlin не могут содержать значения null:
fun main() {
var name: String = "Alice"
name = null // Ошибка! Не скомпилируется
}Компилятор обнаруживает эту проблему ещё до запуска кода. Именно поэтому Kotlin «безопасен в отношении null»: сам язык не позволяет случайно использовать null там, где этого не должно быть.
В следующих уроках вы узнаете, как Kotlin позволяет работать со значениями, которые могут быть равны null, когда они действительно вам нужны, и при этом сохранять безопасность кода, предотвращая сбои.
Задание
ЛегкоОбъявите две переменные, не допускающие значения null, чтобы продемонстрировать безопасность Kotlin в отношении null:
- Переменная типа
Stringс именемusernameи значением"Kotlin" - Переменная типа
Intс именемscoreи значением100
Затем выведите оба значения в отдельных строках с помощью println().
Помните: в Kotlin обычные типы (не допускающие значения null) не могут содержать значения
null. Компилятор гарантирует, что ваши переменные всегда содержат допустимые данные.
Попробуйте сами
fun main() {
// TODO: Напишите ваш код ниже
// Объявите ненулевую переменную типа String с именем 'username' и значением "Kotlin"
// Объявите ненулевую переменную типа Int с именем 'score' и значением 100
// Выведите оба значения на отдельных строках с помощью println()
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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