Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: unwrap, expect, panic, option, result

В чём разница между .unwrap() и .expect() в Rust?

Этот вопрос проверяет знание способов работы с типами Option и Result в Rust и их особенностей.

Короткий ответ

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

Длинный ответ

В Rust методы .unwrap() и .expect() используются для работы с типами Option и Result, когда вы уверены, что значение присутствует. Однако их поведение при ошибке отличается.

1. .unwrap():

  • Вызывает панику с дефолтным сообщением.

  • Полезен для быстрых тестов, но не информативен при ошибках.

let value: Option<i32> = None;
let result = value.unwrap(); // Паника: "called `Option::unwrap()` on a `None` value"

2. .expect():

  • Делает то же, что и .unwrap(), но позволяет добавить пользовательское сообщение об ошибке.

  • Это упрощает отладку.

let value: Option<i32> = None;
let result = value.expect("Value is missing!"); // Паника: "Value is missing!"

Рекомендации:

  • Используйте .expect() вместо .unwrap(), чтобы сообщения об ошибках были понятными.

  • Для обработки ошибок рекомендуется использовать методы match или if let.

  • Пример безопасной обработки:

let value: Option<i32> = None;
if let Some(val) = value {
    	println!("Value: {}", val);
} else {
    	println!("Value is missing!");
}

.unwrap() и .expect() удобны для прототипирования, но в продакшн-коде лучше использовать более надёжные подходы к обработке ошибок.ф

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Rust

    Rust

Ключевые слова

#unwrap

#expect

#panic

#option

#result

Подпишись на Rust Developer в телеграм

  • Аватар

    Rust Guru

    Eduard Paul

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.