Menu
Coddy logo textTech

Что такое 'Option'?

Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 35 из 66.

В программировании вы часто сталкиваетесь с ситуациями, когда значение может присутствовать или отсутствовать. Например, поиск элемента в списке может привести к нахождению элемента, либо он может вовсе не существовать. Традиционные языки программирования часто используют специальные значения, такие как null или -1, для представления «ничего», но такой подход может привести к ошибкам и сбоям.

Rust использует другой подход с перечислением Option<T>. Это встроенный тип, который явно представляет возможность отсутствия значения. Вместо того чтобы гадать, существует ли значение, Rust заставляет вас обрабатывать оба случая заранее.

Перечисление Option имеет ровно два варианта:

Some(value)  // Содержит значение
None         // Не содержит значения

Когда функция может не возвращать значение, она возвращает Option. Если есть значение для возврата, она оборачивает его в Some. Если значения нет, она возвращает None.

Это делает потенциальное отсутствие явным в системе типов, предотвращая случайное использование значения, которого не существует.

Вы уже видели Option в действии с методом .get() хеш-таблицы — он возвращает Some(&value), когда ключ существует, или None, когда его нет. Этот паттерн встречается повсюду в Rust, делая ваш код более безопасным и предсказуемым.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Шпаргалка

Перечисление Option<T> представляет значение, которое может присутствовать или отсутствовать, предотвращая ошибки, связанные с использованием несуществующих значений.

Оно имеет два варианта:

Some(value)  // Содержит значение
None         // Не содержит значения

Функции, которые могут не возвращать значение, используют Option. Например, метод .get() хеш-таблицы возвращает Some(&value), если ключ существует, или None, если нет.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow