Rust · Essencial · Inglês · Técnico
unwrap
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'.