Drop y RAII en Rust
Drop corre cuando un valor sale del alcance; así hace Rust la limpieza.
struct Guard {
name: &'static str,
}
impl Drop for Guard {
fn drop(&mut self) {
println!("releasing {}", self.name);
}
}
fn main() {
let _outer = Guard { name: "outer" };
{
let _inner = Guard { name: "inner" };
println!("inside the block");
}
let early = Guard { name: "early" };
drop(early);
println!("end of main");
}
Cómo funciona
dropse llama solo, en orden inverso de creación.- Este es el patrón detrás de los archivos abiertos y los guards de locks.
std::mem::droptermina la vida de un valor antes.
Palabras clave y builtins usados aquí
Dropdropfnforimplletmutselfstaticstrstruct
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 321
- Tokens
- 100
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 57 segundos.
Paso 4 de 4 en Operadores y acceso; paso 15 de 19 en Traits y genéricos.