Menu
CoddyTech

Konwertowanie ciągów znaków na liczby

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 47 z 66.

Jednym z najczęstszych zastosowań typu Result w praktyce jest konwertowanie ciągów znaków na liczby. W Rust robi się to za pomocą metody .parse(), co doskonale pokazuje, dlaczego istnieje Result — ponieważ parsowanie może się nie powieść.

Metoda .parse() próbuje przekonwertować ciąg znaków na liczbę, ale nie każdy ciąg znaków przedstawia prawidłową liczbę. Na przykład ciąg „42” można sparsować jako liczbę 42, ale ciągu „hello” nie można przekonwertować na żadną liczbę:

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

Gdy parsowanie się powiedzie, .parse() zwraca Ok(number) zawierające przekonwertowaną wartość. Gdy się nie powiedzie, zwraca Err(error) z informacją o przyczynie niepowodzenia parsowania. Dzięki temu musisz jawnie obsłużyć obie możliwości, co zapobiega awarii programu w przypadku nieprawidłowych danych wejściowych.

Możesz obsłużyć wynik parsowania, korzystając z dowolnej z poznanych technik pracy z typem Result — użyć match do jawnej obsługi, unwrap(), jeśli masz pewność, że operacja się powiedzie, albo operatora ?, aby propagować błędy.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję parse_to_integer, która przyjmuje ciąg znaków input i zwraca sparsowaną wartość całkowitą. Jeśli ciągu znaków nie można sparsować jako prawidłowej liczby całkowitej, zwróć 0 jako wartość domyślną.

Użyj metody .parse(), aby przekonwertować ciąg znaków na i32, i odpowiednio obsłuż typ Result, aby zwrócić bezpieczną wartość.

Parametry:

  • input (String): Ciąg znaków do sparsowania jako liczba całkowita

Zwraca: Sparsowaną liczbę całkowitą, jeśli operacja się powiedzie, lub 0, jeśli parsowanie się nie powiedzie (i32)

Spróbuj swoich sił

fn parse_to_integer(input: String) -> i32 {
    // Wpisz tutaj kod
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Rust online