Rust · Essencial · Inglês · Técnico
unsafe
Palavra-chave que abre um bloco ou marca uma função onde o programador assume a responsabilidade por garantias que o compilador não consegue verificar, como desreferenciar ponteiros brutos.
Onde usar
Aparece em FFI, em estruturas de dados de baixo nível e em reviews que pedem um comentário SAFETY explicando por que o bloco é correto. A meta é isolar o unsafe em módulos pequenos.
Em código
let x = 5;
let p = &x as *const i32;
unsafe {
println!("{}", *p);
}
// unsafe não desliga o borrow checkerExemplos
Wrap the unsafe block in a safe function.
Envolva o bloco unsafe em uma função segura.
Add a SAFETY comment above this unsafe.
Adicione um comentário SAFETY acima desse unsafe.
Cuidado
Unsafe não desliga o borrow checker nem as demais verificações; ele só libera cinco operações extras, como desreferenciar ponteiro bruto e chamar função unsafe.
Antônimos
safe