ExpertiDict

Rust · Essencial · Inglês · Técnico

unwrap

/ʌnˈræp/verbo

Método que extrai o valor de um Option ou Result e causa panic se for None ou Err. É rápido de escrever, mas descarta o tratamento do erro.

Onde usar

Aparece em protótipos, testes e exemplos. Em code review de código de produção, vira comentário: troque por ?, por expect com mensagem ou por um tratamento explícito.

Em código

let ok: Result<i32, String> = Ok(1);
println!("{}", ok.unwrap());
let nada: Option<i32> = None;
// nada.unwrap() daria panic
println!("{}", nada.unwrap_or(0));

Exemplos

Please remove this unwrap before merging.

Por favor, tire esse unwrap antes do merge.

Unwrap is fine in tests.

Unwrap é aceitável em testes.

Cuidado

Não é inofensivo só porque funciona no teste: um unwrap em None derruba a thread inteira.

Sinônimos

desembrulhar

Origem

Do inglês unwrap, 'desembrulhar'.

Veja também

Todos os termos de Rust