Метод ok
Метод ok преобразует значение типа Result
в значение типа Option. Если исходный результат
содержит вариант Ok, метод возвращает
Some с тем же значением. Если же исходный
результат содержит вариант Err, метод возвращает
None, полностью отбрасывая значение ошибки.
Метод не принимает параметров и потребляет исходный
результат.
Синтаксис
result.ok()
Пример
Давайте преобразуем результат Ok в опцию:
fn main()
{
let res: Result<i32, &str> = Ok(123);
let opt = res.ok();
println!("{:?}", opt);
}
Результат выполнения кода:
Some(123)
Пример
Давайте преобразуем результат Err в опцию:
fn main()
{
let res: Result<i32, &str> = Err("error");
let opt = res.ok();
println!("{:?}", opt);
}
Результат выполнения кода:
None
Пример
Давайте используем метод ok вместе с
unwrap_or, чтобы получить значение по умолчанию
при ошибке:
fn main()
{
let res: Result<i32, &str> = Err("error");
let value = res.ok().unwrap_or(0);
println!("{}", value);
}
Результат выполнения кода:
0