Проверка необязательного значения в Rust
Перед разбором или печатью иногда достаточно узнать, заполнен ли вариант. Отдельная проверка возвращает логическое значение: истина, если внутри лежат данные, ложь для пустого варианта. Само содержимое при этом не достают.
Отдельно спрашивают, есть ли значение, не доставая его:
let full = Some(2);
let empty: Option<i32> = None;
println!("{}", full.is_some());
println!("{}", empty.is_some());
На экране "true" и "false".
Проверку удобно ставить перед условием
или разбором, когда важен только факт
наличия:
let item: Option<i32> = None;
if item.is_some() {
println!("has data");
} else {
println!("no data");
}
Дана переменная:
let val = Some(8);
Выведите результат проверки наличия
данных для val.
Дана переменная:
let val: Option<i32> = None;
Скажите, что вернет проверка наличия
для val.
Чем проверка наличия отличается от короткого условия на заполненный вариант?