Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Rust: result, option, error handling

Как можно конвертировать Option в Result в Rust?

Этот вопрос проверяет, как преобразовать значение типа Option в тип Result, который предоставляет дополнительные возможности для обработки ошибок.

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

Чтобы преобразовать Option в Result, можно использовать метод .ok_or_else(), который возвращает Result, где в случае None используется переданное сообщение об ошибке.

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

В Rust Option и Result — это два часто используемых типа для обработки значений, которые могут быть или не быть. Чтобы конвертировать Option в Result, можно воспользоваться методом .ok_or_else().

Метод .ok_or_else():

  • Преобразует значение типа Option в тип Result.

  • Если Option содержит Some, то возвращается Result::Ok с содержимым.

  • Если Option равно None, то вызывается переданная замыкание, и его результат оборачивается в Result::Err.

  • Пример:

let foo: Option<i32> = Some(1);
let result: Result<i32, &str> = foo.ok_or_else(|| "no number provided");
println!("{:?}", result); // Ok(1)

let foo: Option<i32> = None;
let result: Result<i32, &str> = foo.ok_or_else(|| "no number provided");
println!("{:?}", result); // Err("no number provided")

Метод .ok_or_else() удобно преобразует Option в Result, позволяя легко обрабатывать случаи отсутствия значения с помощью пользовательских сообщений об ошибках.

  • Аватар

    Rust Guru

    Eduard Paul

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Rust

    Rust

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

#result

#option

#error handling

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

  • Аватар

    Rust Guru

    Eduard Paul

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