Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, traits Deref y Drop

22 preguntas de entrevista·
Mid-Level
1

¿Cuál es el caso de uso principal de Box<T> en Rust?

Respuesta

Box<T> asigna datos en el heap en lugar de la stack. Esto resulta útil para tipos cuyo tamaño se desconoce en tiempo de compilación (tipos recursivos), para transferir la ownership de grandes volúmenes de datos sin copiarlos, o para crear trait objects. El propio puntero Box tiene un tamaño fijo en la stack.

2

¿Cómo definir un tipo recursivo como una lista enlazada en Rust?

Respuesta

Un tipo recursivo directo como enum List { Cons(i32, List), Nil } no compila porque el compilador no puede determinar el tamaño. Al usar Box<List>, se crea una indirección con un tamaño fijo (puntero), lo que permite al compilador calcular el tamaño del tipo.

3

¿Cuál es la diferencia principal entre Rc<T> y Arc<T>?

Respuesta

Rc (Reference Counted) usa un contador de referencias no atómico, lo que lo hace más eficiente pero limitado a un solo thread. Arc (Atomically Reference Counted) usa operaciones atómicas para el contador, lo que permite compartir entre threads pero con una ligera sobrecarga de rendimiento.

4

¿Qué permite el trait Deref en Rust?

5

¿Qué es la mutabilidad interior (interior mutability) en Rust?

+19 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