Czym jest „Result”?
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 42 z 66.
Podczas gdy Option obsługuje brak wartości, Rust udostępnia inny typ wyliczeniowy na potrzeby innego, ale równie ważnego scenariusza: operacji, które mogą się nie powieść. Poznaj Result<T, E> — podstawowe narzędzie Rusta do obsługi błędów, które można naprawić.
Wyliczenie Result ma dwa warianty reprezentujące wynik operacji:
enum Result<T, E> {
Ok(T), // Sukces — zawiera wynik pomyślnej operacji
Err(E), // Niepowodzenie — zawiera informacje o błędzie
}Gdy operacja się powiedzie, zwraca Ok(value) zawierające wynik. Gdy się nie powiedzie, zwraca Err(error) zawierające informacje o tym, co poszło nie tak. Jawna obsługa przypadków powodzenia i niepowodzenia sprawia, że programy w Rust są bardziej niezawodne i przewidywalne.
W Rust wszędzie napotkasz Result — od operacji na plikach, które mogą się nie powieść z powodu braku plików, przez żądania sieciowe, które mogą przekroczyć limit czasu, po operacje parsowania, które mogą otrzymać nieprawidłowe dane wejściowe. W przeciwieństwie do języków korzystających z wyjątków Rust wymaga, abyś uwzględniał możliwość niepowodzenia operacji i jawnie obsługiwał oba wyniki.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book7Obsługa błędów za pomocą „Result”
Czym jest „Result”?Używanie „match” z „Result”is_ok() i is_err()Skróty: unwrap i expectOperator znaku zapytania „?”Konwertowanie ciągów znaków na liczbyPodsumowanie — bezpieczna funkcja dzielenia2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online