Метод unwrap_or в Rust
Иногда нужно получить обычное число, даже если внутри лежит пустота. У типа есть команда, которая отдает значение из заполненного варианта или подставляет запас, если данных нет. Запас пишут рядом в той же строке.
Если значения нет, подставляют запасное число:
let full = Some(7);
let empty: Option<i32> = None;
let a = full.unwrap_or(0);
let b = empty.unwrap_or(0);
println!("{}", a);
println!("{}", b);
На экране 7 и 0. Запас может
быть любым числом того же типа, не только
нулем. Заполненный вариант запас не
подменяет:
let item = Some(20);
let n = item.unwrap_or(100);
println!("{}", n);
Дана переменная:
let gap: Option<i32> = None;
Запишите число с запасом 5 в
total и выведите total.
Дана переменная:
let item = Some(11);
Скажите, какое число вернет команда
с запасом 99 для item.
Зачем нужен запас, если дальше по коду ждут обычное число, а не необязательное значение?