Menu
CoddyTech

Parsing de Strings para Números

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 47 de 66.

Uma das aplicações mais comuns de Result no mundo real é converter strings em números. Em Rust, isso é feito usando o método .parse(), que demonstra perfeitamente por que Result existe: porque a análise pode falhar.

O método .parse() tenta converter uma string em um número, mas nem toda string representa um número válido. Por exemplo, "42" pode ser analisado e convertido no número 42, mas "hello" não pode ser convertido em nenhum número:

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

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

Quando a análise é bem-sucedida, .parse() retorna Ok(number), contendo o valor convertido. Quando falha, retorna Err(error), com informações sobre o motivo da falha na análise. Isso obriga você a tratar ambas as possibilidades explicitamente, impedindo que seu programa trave com uma entrada inválida.

Você pode lidar com o resultado da análise usando qualquer uma das técnicas de Result que aprendeu: match para um tratamento explícito, unwrap() se tiver certeza de que será bem-sucedido ou o operador ? para propagar erros.

challenge icon

Desafio

Fácil
Escreva uma função parse_to_integer que recebe uma string input e retorna o valor inteiro analisado. Se não for possível analisar a string como um inteiro válido, retorne 0 como valor padrão.

Use o método .parse() para converter a string em um i32 e trate o Result adequadamente para fornecer um valor de retorno seguro.

Parâmetros:

  • input (String): A string a ser analisada como um inteiro

Retorna: O inteiro analisado em caso de sucesso ou 0 se a análise falhar (i32)

Experimente você mesmo

fn parse_to_integer(input: String) -> i32 {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online