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

Метод unwrap_or_default

Метод unwrap_or_default извлекает значение из Result или Option. Если значение присутствует, метод возвращает его. Если же произошла ошибка (для Result) или значение отсутствует (для Option), метод возвращает значение по умолчанию для типа данных, реализующего трейт Default. Метод не принимает параметров.

Синтаксис

result.unwrap_or_default() option.unwrap_or_default()

Пример

Давайте извлечем значение из Ok. Так как значение присутствует, метод вернет его:

fn main() { let res: Result<i32, &str> = Ok(5); let val = res.unwrap_or_default(); println!("{}", val); }

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

5

Пример

Давайте извлечем значение из Err. Так как произошла ошибка, метод вернет значение по умолчанию для типа i32, то есть 0:

fn main() { let res: Result<i32, &str> = Err("error"); let val = res.unwrap_or_default(); println!("{}", val); }

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

0

Пример

Давайте извлечем значение из Some. Так как значение присутствует, метод вернет его:

fn main() { let res: Option<&str> = Some("abcde"); let val = res.unwrap_or_default(); println!("{}", val); }

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

"abcde"

Пример

Давайте извлечем значение из None. Так как значение отсутствует, метод вернет значение по умолчанию для типа &str, то есть пустую строку:

fn main() { let res: Option<&str> = None; let val = res.unwrap_or_default(); println!("{:?}", val); }

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

""

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

  • метод unwrap,
    который извлекает значение или вызывает панику
  • метод expect,
    который извлекает значение или вызывает панику с сообщением
  • метод unwrap_or,
    который извлекает значение или возвращает заданное значение
  • метод unwrap_or_else,
    который извлекает значение или вычисляет его через замыкание
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить