# Lifetimes Avanzados (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 preguntas de entrevista - Senior - [Preguntas de entrevista: Rust](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista.md) ## 1. ¿Qué es un Higher-Ranked Trait Bound (HRTB) en Rust? **Respuesta** Un Higher-Ranked Trait Bound (HRTB) permite especificar que una función o un trait debe funcionar para todos los lifetimes posibles, no solo uno específico. La sintaxis for<'a> indica que el trait bound debe satisfacerse para cualquier lifetime 'a elegido por quien lo llama. Esta funcionalidad es esencial para las closures y los callbacks que necesitan aceptar referencias con lifetimes variados. ## 2. ¿Cuál es la diferencia entre fn foo<'a>(f: impl Fn(&'a str)) y fn foo(f: impl for<'a> Fn(&'a str))? **Respuesta** Con fn foo<'a>, el lifetime 'a lo fija quien lo llama en el momento de la llamada y permanece igual durante toda la ejecución. Con for<'a>, la closure debe funcionar para cualquier lifetime, lo que permite llamarla varias veces con referencias de lifetimes diferentes. Esta distinción es crucial para las APIs que llaman a una closure varias veces con distintas referencias temporales. ## 3. ¿Qué es el lifetime subtyping en Rust y qué significa 'a: 'b? **Respuesta** El lifetime subtyping establece una relación de subtyping entre lifetimes. La notación 'a: 'b significa que 'a vive al menos tanto como 'b, por lo que 'a es un subtype de 'b. Una referencia con un lifetime más largo puede usarse donde se espera un lifetime más corto. Esta relación es covariant para las referencias inmutables, lo que permite pasar una referencia con un lifetime más largo donde bastaría uno más corto. ## 17 preguntas más disponibles - ¿Qué es la variance en Rust y cómo afecta a los tipos genéricos? - ¿Por qué &mut T es invariant con respecto a T mientras que &T es covariant? Regístrate gratis: https://sharpskill.dev/es/login ## Otros temas de entrevista Rust - [Fundamentos de Rust](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/rust-basics.md): 25 preguntas, Junior - [Ownership & Borrowing](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/ownership-borrowing.md): 22 preguntas, Junior - [Structs & Enums](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/structs-enums.md): 20 preguntas, Junior - [Manejo de errores](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/error-handling.md): 18 preguntas, Junior - [Colecciones](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/collections.md): 20 preguntas, Junior - [Módulos y Paquetes](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/modules-packages.md): 18 preguntas, Junior - [Traits](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/traits.md): 22 preguntas, Mid-Level - [Generics](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/generics.md): 20 preguntas, Mid-Level - [Lifetimes](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/lifetimes.md): 20 preguntas, Mid-Level - [Iterators & Closures](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/iterators-closures.md): 22 preguntas, Mid-Level - [Smart Pointers](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/smart-pointers.md): 22 preguntas, Mid-Level - [Concurrency Basics](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/concurrency-basics.md): 20 preguntas, Mid-Level - [async/await](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/async-await.md): 22 preguntas, Mid-Level - [Testing](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/testing.md): 18 preguntas, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/cargo-ecosystem.md): 18 preguntas, Mid-Level - [Pattern Matching](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/pattern-matching.md): 18 preguntas, Mid-Level - [Macros](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/macros.md): 20 preguntas, Mid-Level - [Serde y serialización](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/serde-serialization.md): 20 preguntas, Mid-Level - [Unsafe Rust](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/unsafe-rust.md): 20 preguntas, Senior - [Traits avanzados](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/advanced-traits.md): 22 preguntas, Senior - [Type System](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/type-system.md): 20 preguntas, Senior - [Tokio & Async I/O](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/tokio-async.md): 22 preguntas, Senior - [Optimización de Rendimiento](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/performance-optimization.md): 20 preguntas, Senior - [Memory Management](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/memory-management.md): 20 preguntas, Senior - [Web Frameworks](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/web-frameworks.md): 22 preguntas, Senior - [Database Integration](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/database-integration.md): 20 preguntas, Senior - [Patrones de diseño en Rust](https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/design-patterns.md): 20 preguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/es/technologies/rust/preguntas-entrevista/advanced-lifetimes