В чём принципиальное отличие Result::or_else от unwrap_or_else при реализации резервного пути?
База Hintsage
Программирование Rust
Язык Rust и безопасное системное программирование.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по Rust.
Открыть раздел - 49 вопросов
Rust Core
Типы, pattern matching, modules и базовая семантика.
Открыть раздел - 50 вопросов
Владение и заимствование
Ownership, borrowing, moves и правила безопасной памяти.
Открыть раздел - 50 вопросов
Времена жизни
Lifetime annotations и связи времени жизни ссылок.
Открыть раздел - 49 вопросов
Traits и generics
Traits, bounds, generics, associated types и dispatch.
Открыть раздел - 50 вопросов
Конкурентность и async
Send/Sync, threads, channels, futures и async runtime.
Открыть раздел - 50 вопросов
Обработка ошибок
Result, Option, оператор ?, panic и проектирование ошибок.
Открыть раздел - 50 вопросов
Unsafe и память
Unsafe Rust, raw pointers, FFI и инварианты безопасности.
Открыть раздел
Практика
Вопросы: Программирование Rust
Почему Box<dyn Error> не поддерживает прямое сопоставление с вариантами конкретной ошибки?
При возврате Result из main каким образом Rust превращает Err в завершение программы?
После переключения профиля Rust с panic=unwind на panic=abort какой механизм обработки panic перестаёт работать и чем это меняет поведение процесса?
В практической ситуации структура владеет Option<String>, но нужно забрать строку через &mut self, сохранив структуру валидной. Какой механизм Option следует выбрать?
При раннем возврате через оператор ? как Rust освобождает уже созданные локальные ресурсы?
Объясните, зачем в Rust успешный результат операции без полезного значения представлен как Result<(), E>, а не как отдельный тип успеха.
В библиотечном API нужно реализовать преобразование между двумя типами ошибок из внешних crate. Как обойти правило согласованности трейтов Rust?
Зачем использовать Result<T, Infallible> в обобщённом API, если конкретная операция не может завершиться ошибкой?
В чём практическое отличие Option::ok_or от Option::ok_or_else, если создание ошибки требует затрат?
Программа читает конфигурационный файл через ?. Как завершится процесс при отсутствии файла?
use std::fs;
fn main() -> Result<(), std::io::Error> {
let config = fs::read_to_string("config.toml")?;
println!("{}", config.len());
Ok(())
}
Зачем Rust помечает тип Result как must_use и какую ошибку проектирования это помогает обнаружить?
При проектировании функции валидации как вернуть вызывающему коду все найденные ошибки, а не только первую?
Что происходит с panic в Rust после установки panic hook?
Представьте публичную библиотеку Rust: как объявить перечисление ошибок, чтобы добавление нового варианта не ломало сопоставление у клиентов?
Что позволяет сделать Option::as_ref, не перемещая значение из Option?
Как Rust иногда хранит Result без отдельного поля для признака успеха?
Что определяет границу раннего возврата оператора ? внутри замыкания Rust?
Допустимо ли применить оператор ? к Option внутри функции, возвращающей Result?
При преобразовании Option в Result через ok_or какую информацию получает вызывающий код, которой не было в исходном типе?
Показано 61–80 из 348