Метод 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,
который извлекает значение или вычисляет его через замыкание