Menu
Coddy logo textTech

O que é um 'Result'?

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 42 de 66.

Enquanto o Option lida com a ausência de valores, o Rust fornece outro enum para um cenário diferente, mas igualmente importante: operações que podem falhar. Conheça o Result<T, E> - a principal ferramenta do Rust para lidar com erros recuperáveis.

O enum Result possui duas variantes que representam o resultado de uma operação:

enum Result<T, E> {
    Ok(T),    // Sucesso - contém o resultado bem-sucedido
    Err(E),   // Falha - contém informações de erro
}

Quando uma operação é bem-sucedida, ela retorna Ok(value) contendo o resultado de sucesso. Quando ela falha, ela retorna Err(error) contendo informações sobre o que deu errado. Este tratamento explícito de casos de sucesso e falha torna os programas em Rust mais confiáveis e previsíveis.

Você encontrará Result em todos os lugares no Rust - desde operações de arquivo que podem falhar devido a arquivos ausentes, até requisições de rede que podem expirar, até operações de parsing que podem receber entradas inválidas. Ao contrário de linguagens que usam exceções, o Rust força você a reconhecer que as operações podem falhar e a lidar com ambos os resultados explicitamente.

quiz iconTeste seus conhecimentos

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

quiz iconTeste seus conhecimentos

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

quiz iconTeste seus conhecimentos

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

Folha de consulta

O enum Result<T, E> lida com operações que podem falhar:

enum Result<T, E> {
    Ok(T),    // Sucesso - contém o resultado bem-sucedido
    Err(E),   // Falha - contém informações de erro
}

Quando uma operação é bem-sucedida, ela retorna Ok(value). Quando ela falha, ela retorna Err(error).

O Result é usado para erros recuperáveis, como operações de arquivo, solicitações de rede e operações de parsing. O Rust exige o tratamento explícito de casos de sucesso e de falha.

Experimente você mesmo

Esta lição não inclui um desafio de código.

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 Logic & Flow