Menu
Coddy logo textTech

Что такое 'Result'?

Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 42 из 66.

В то время как Option обрабатывает отсутствие значений, Rust предоставляет другое перечисление для иного, но не менее важного сценария: операций, которые могут завершиться ошибкой. Встречайте Result<T, E> — основной инструмент Rust для обработки восстановимых ошибок.

Перечисление Result имеет два варианта, которые представляют результат операции:

enum Result<T, E> {
    Ok(T),    // Успех — содержит успешный результат
    Err(E),   // Ошибка — содержит информацию об ошибке
}

Когда операция завершается успешно, она возвращает Ok(value), содержащий успешный результат. Когда она завершается с ошибкой, она возвращает Err(error), содержащий информацию о том, что пошло не так. Такая явная обработка случаев успеха и неудачи делает программы на Rust более надежными и предсказуемыми.

Вы будете встречать Result повсюду в Rust — от операций с файлами, которые могут завершиться ошибкой из-за отсутствия файлов, до сетевых запросов, время ожидания которых может истечь, и операций парсинга, которые могут получить некорректные входные данные. В отличие от языков, использующих исключения, Rust заставляет вас признать, что операции могут завершиться неудачей, и явно обрабатывать оба исхода.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Шпаргалка

Перечисление Result<T, E> обрабатывает операции, которые могут завершиться ошибкой:

enum Result<T, E> {
    Ok(T),    // Успех — содержит успешный результат
    Err(E),   // Ошибка — содержит информацию об ошибке
}

Когда операция проходит успешно, она возвращает Ok(value). Когда она завершается неудачей, она возвращает Err(error).

Result используется для восстановимых ошибок, таких как операции с файлами, сетевые запросы и операции парсинга. Rust требует явной обработки как случаев успеха, так и случаев неудачи.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow