РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
607 of 1245 menu

Метод expect

Метод expect извлекает значение из типа Result или Option. Если значение присутствует, метод возвращает его. Если значение отсутствует или произошла ошибка, метод вызывает панику с сообщением, которое передаётся параметром. Параметром метод принимает строку с текстом сообщения об ошибке.

Метод expect удобно использовать в тех случаях, когда ошибка не должна возникнуть, и вы хотите сразу увидеть причину паники в выводе программы.

Синтаксис

result.expect(msg) option.expect(msg)

Пример

Давайте извлечём значение из Ok с помощью метода expect:

fn main() { let res: Result<i32, &str> = Ok(12345); let value = res.expect("should be a number"); println!("{}", value); }

Результат выполнения кода:

12345

Пример

Давайте попробуем извлечь значение из Err с помощью метода expect. Такой код вызовет панику:

fn main() { let res: Result<i32, &str> = Err("some error"); let value = res.expect("failed to get value"); println!("{}", value); }

Результат выполнения кода:

thread 'main' panicked at 'failed to get value: "some error"'

Пример

Давайте извлечём значение из Some с помощью метода expect:

fn main() { let res: Option<&str> = Some("abcde"); let value = res.expect("value is missing"); println!("{}", value); }

Результат выполнения кода:

"abcde"

Пример

Давайте попробуем извлечь значение из None с помощью метода expect. Такой код вызовет панику:

fn main() { let res: Option<&str> = None; let value = res.expect("value is missing"); println!("{}", value); }

Результат выполнения кода:

thread 'main' panicked at 'value is missing'

Смотрите также

  • метод unwrap,
    который извлекает значение или вызывает панику без сообщения
  • метод unwrap_or,
    который возвращает значение по умолчанию при ошибке
  • метод unwrap_or_else,
    который вычисляет значение по умолчанию при ошибке
  • метод unwrap_err,
    который извлекает ошибку из Result или вызывает панику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить