Разбор результата в Rust
Значение типа Result разбирают через
match так же, как перечисление.
Слева стоит переменная с результатом,
справа - ветки для удачного и неудачного
варианта. Разбор обязан назвать оба исхода,
иначе код не собирается.
В ветке удачи имя Ok связывают с
числом или другим полезным значением.
В ветке сбоя Err связывают с текстом
или типом ошибки. Пример для целого и
строки:
fn main() {
let value: Result<i32, String> = Ok(12);
match value {
Ok(n) => println!("{}", n),
Err(text) => println!("{}", text),
}
}
Если переменная уже хранит сбой, сработает вторая ветка:
fn main() {
let value: Result<i32, String> = Err(String::from("fail"));
match value {
Ok(n) => println!("{}", n),
Err(text) => println!("{}", text),
}
}
Дан следующий код:
let score: Result<i32, String> = Ok(5);
Разберите score и выведите число
или текст сбоя в main.rs.
Дан следующий код:
let score: Result<i32, String> =
Err(String::from("low"));
Разберите score и выведите на
экран содержимое сработавшей ветки.
Скажите, сколько веток нужно в разборе
Result<i32, String>, чтобы программа
собралась.