Разбор необязательного значения в Rust
Полный разбор для этого типа устроен так же, как для своего перечисления: каждая ветка называет один вариант. Компилятор требует обе ветки, потому что значение может быть и заполненным, и пустым.
В ветке заполненного варианта число из скобок сразу получает имя, как при разборе варианта с данными:
let item = Some(40);
match item {
Some(n) => println!("{}", n),
None => println!("empty"),
}
Если переменная пустая, сработает вторая ветка. Убрать любую из двух нельзя: сборка остановится с сообщением о непокрытом варианте:
let item: Option<i32> = None;
match item {
Some(n) => println!("{}", n),
None => println!("empty"),
}
Дана переменная:
let score = Some(9);
Разберите score и выведите число
или слово "empty" в main.rs.
Дана переменная:
let gap: Option<i32> = None;
Скажите, какая ветка разбора выполнится
для gap.
Скажите, соберется ли программа, если в разборе только ветка для заполненного варианта.