Извлечение из необязательного значения в Rust
У типа необязательного значения есть метод, который забирает внутреннее число или строку, если вариант заполнен. При пустом варианте он не возвращает сбой в исходе: он вызывает панику, как явная команда остановки.
Заполненный вариант отдает данные без дополнительного разбора:
fn main() {
let n = Some(3);
let value = n.unwrap();
println!("{}", value);
}
На экране 3. У пустого варианта тот
же вызов не дает числа: сборка пройдет,
но при запуске программа остановится:
fn main() {
let n: Option<i32> = None;
let value = n.unwrap();
println!("{}", value);
}
Дано необязательное значение с числом
7. Достаньте его в переменную
и выведите на экран.
Дан следующий код:
fn main() {
let item: Option<i32> = None;
let n = item.unwrap();
println!("{}", n);
}
Скажите, дойдет ли выполнение до печати при запуске и чем отличается этот случай от ошибки сборки.
Запишите две переменные: одну с Some(5),
другую с пустым Option<i32>. Из
первой выведите число через извлечение,
из второй не вызывайте метод на запуске
и объясните, почему второй фрагмент опасен.