Elisión

Algunos patrones de vida útil son abrumadoramente comunes, por lo que el verificador de préstamos te permitirá omitirlos para ahorrar escritura y mejorar la legibilidad. Esto se conoce como elisión. La elisión existe en Rust únicamente porque estos patrones son comunes.

El siguiente código muestra algunos ejemplos de elisión. Para obtener una descripción más completa de la elisión, consulte [elisión de vida útil][elisión] en el libro.

// `entrada_elidida` y` entrada_anotada` tienen esencialmente signaturas idénticas
// porque el compilador infiere la vida útil de `entrada_elidida`:
fn entrada_elidida(x: &i32) {
    println!("`entrada_elidida`: {}", x);
}

fn entrada_anotada<'a>(x: &'a i32) {
    println!("`entrada_anotada`: {}", x);
}

// Del mismo modo, `pase_elidido` y` pase_anotado` tienen signaturas idénticas
// porque la vida útil se agrega implícitamente a `pase_elidido`:
fn pase_elidido(x: &i32) -> &i32 { x }

fn pase_anotado<'a>(x: &'a i32) -> &'a i32 { x }

fn main() {
    let x = 3;

    entrada_elidida(&x);
    entrada_anotada(&x);

    println!("`pase_elidido`: {}", pase_elidido(&x));
    println!("`pase_anotado`: {}", pase_anotado(&x));
}

Ve también

elisión