Что такое безопасность 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, не допускающую null, с именем 'username' и значением "Kotlin"
// Объявите переменную типа Int, не допускающую null, с именем '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