typestar

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

  1. drop se llama solo, en orden inverso de creación.
  2. Este es el patrón detrás de los archivos abiertos y los guards de locks.
  3. std::mem::drop termina la vida de un valor antes.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 4 en Operadores y acceso; paso 15 de 19 en Traits y genéricos.

← Anterior Siguiente →