Rust

Lifetimes

Anotaciones de lifetime, reglas de elisión, lifetime 'static, lifetimes en structs, lifetime bounds

20 preguntas de entrevista·
Mid-Level
1

¿Cuál es el propósito principal de los lifetimes en Rust?

Respuesta

Los lifetimes permiten al compiler verificar que todas las references sean válidas durante todo su uso. Garantizan que una reference nunca sobreviva a los datos a los que apunta, evitando así los dangling references. El borrow checker usa los lifetimes para validar la seguridad de memoria en tiempo de compilación, sin overhead en tiempo de ejecución.

2

¿Qué sintaxis se usa para anotar un lifetime en una reference?

Respuesta

Los lifetimes se anotan con un apóstrofo seguido de un nombre, normalmente una letra minúscula como 'a. La sintaxis &'a T significa una reference a T con el lifetime 'a. Por convención, se usa 'a, 'b, 'c para los lifetimes genéricos, pero cualquier identificador válido puede usarse después del apóstrofo.

3

¿Qué significa el lifetime 'static en Rust?

Respuesta

El lifetime 'static indica que una reference puede vivir durante toda la duración del programa. Los string literals como "hello" tienen automáticamente el lifetime 'static porque están integrados en el binario. Las constantes globales y los valores creados con Box::leak también tienen este lifetime. Atención: 'static no significa que el valor existió desde el inicio del programa, sino que puede vivir hasta el final.

4

¿Cuántas reglas de elisión de lifetime aplica automáticamente el compiler de Rust?

5

¿Por qué no compila una función fn longest(x: &str, y: &str) -> &str?

+17 preguntas de entrevista

Domina Rust para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis