Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmOpInr 301 of 373 menu
◀ ▶

Введение в необязательное значение в Rust

Необязательное значение отвечает на вопрос, есть ли сейчас данные или их нет. Переменная такого типа не обязана всегда держать число или строку: иногда значение еще не готово, элемент списка отсутствует, ключ в карте не найден. Один тип покрывает оба случая.

Необязательное значение либо хранит данные, либо пусто. Пустота не смешивается с нулем и не подменяет отсутствие: это отдельный вариант, который явно говорит, что брать нечего. Заполненный вариант несет само значение внутри, как вариант перечисления с данными в скобках.

Тип встроен в язык как стандартное перечисление с двумя именами. Его не объявляют в каждой программе заново: имена вариантов и сам тип доступны сразу, как целые числа и логический тип. Дальше разберем оба варианта, полный разбор, короткие условия, цикл с извлечением с конца, запасное число и безопасное чтение списка и карты.

Файлы и первые предложения: some-none/ru.html (один вариант несет значение, другой означает пусто), match/ru.html (разбор обязан назвать и полный вариант, и пустой), if-let/ru.html (если значение есть, его сразу достают в ветке, пустой случай пропускают), while-let/ru.html (цикл забирает элементы с конца, пока они есть), unwrap-or/ru.html (если значения нет, подставляют запасное число), is-some/ru.html (отдельно спрашивают, есть ли значение, не доставая его), vec-get/ru.html (чтение вектора по номеру может вернуть пусто, и программа при этом не останавливается), map-get/ru.html (чтение карты по ключу может вернуть пусто), practice/ru.html (в этих задачах потренируем пустое и заполненное значение).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить