РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
573 of 1245 menu

Класс Option

Класс Option - это перечисление из стандартной библиотеки Rust, которое используется для представления значения, которое может присутствовать или отсутствовать. Он имеет два варианта: Some, содержащий значение, и None, обозначающий отсутствие значения. Класс Option часто применяется для безопасной работы с данными, которые могут быть не заданы, вместо использования null, как в других языках программирования.

Вариант Some принимает одно значение любого типа, а вариант None не принимает параметров. Благодаря этому компилятор Rust заставляет программиста явно обрабатывать оба случая, что помогает избежать ошибок времени выполнения.

Синтаксис

enum Option<T> { Some(T), None, }

Пример

Давайте создадим значение Option с некоторым числом и выведем его на экран:

fn main() { let res: Option<i32> = Some(12345); println!("{:?}", res); }

Результат выполнения кода:

Some(12345)

Пример

Давайте создадим значение Option без значения и выведем его на экран:

fn main() { let res: Option<i32> = None; println!("{:?}", res); }

Результат выполнения кода:

None

Пример

Давайте проверим, содержит ли значение Option некоторое число, с помощью метода is_some:

fn main() { let res: Option<i32> = Some(12345); println!("{}", res.is_some()); }

Результат выполнения кода:

true

Пример

Давайте проверим, что значение Option не содержит числа, с помощью метода is_none:

fn main() { let res: Option<i32> = None; println!("{}", res.is_none()); }

Результат выполнения кода:

true

Пример

Давайте извлечём значение из Option с помощью метода unwrap:

fn main() { let res: Option<i32> = Some(12345); println!("{}", res.unwrap()); }

Результат выполнения кода:

12345

Пример

Давайте преобразуем значение внутри Option с помощью метода map:

fn main() { let res: Option<i32> = Some(12345); let res = res.map(|x| x + 1); println!("{:?}", res); }

Результат выполнения кода:

Some(12346)

Смотрите также

  • метод is_some,
    который проверяет, содержит ли Option значение
  • метод is_none,
    который проверяет, что Option не содержит значения
  • метод unwrap,
    который извлекает значение из Option
  • метод map,
    который преобразует значение внутри Option
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить