# Lifetimes Avançados (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 perguntas de entrevista - Senior - [Perguntas de entrevista: Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista.md) ## 1. O que é um Higher-Ranked Trait Bound (HRTB) em Rust? **Resposta** Um Higher-Ranked Trait Bound (HRTB) permite especificar que uma função ou um trait deve funcionar para todos os lifetimes possíveis, não apenas um específico. A sintaxe for<'a> indica que o trait bound deve ser satisfeito para qualquer lifetime 'a escolhido por quem chama. Esse recurso é essencial para closures e callbacks que precisam aceitar referências com lifetimes variados. ## 2. Qual é a diferença entre fn foo<'a>(f: impl Fn(&'a str)) e fn foo(f: impl for<'a> Fn(&'a str))? **Resposta** Com fn foo<'a>, o lifetime 'a é fixado por quem chama no momento da chamada e permanece o mesmo durante toda a execução. Com for<'a>, a closure deve funcionar para qualquer lifetime, permitindo chamá-la várias vezes com referências de lifetimes diferentes. Essa distinção é crucial para APIs que chamam uma closure várias vezes com diferentes referências temporárias. ## 3. O que é lifetime subtyping em Rust e o que significa 'a: 'b? **Resposta** O lifetime subtyping estabelece uma relação de subtyping entre lifetimes. A notação 'a: 'b significa que 'a vive pelo menos tanto quanto 'b, portanto 'a é um subtype de 'b. Uma referência com um lifetime mais longo pode ser usada onde um lifetime mais curto é esperado. Essa relação é covariant para referências imutáveis, permitindo passar uma referência com um lifetime mais longo onde um mais curto bastaria. ## Mais 17 perguntas disponiveis - O que é variance em Rust e como ela afeta os tipos genéricos? - Por que &mut T é invariant em relação a T enquanto &T é covariant? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista Rust - [Fundamentos de Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/rust-basics.md): 25 perguntas, Junior - [Ownership & Borrowing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/ownership-borrowing.md): 22 perguntas, Junior - [Structs & Enums](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/structs-enums.md): 20 perguntas, Junior - [Tratamento de erros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/error-handling.md): 18 perguntas, Junior - [Coleções](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/collections.md): 20 perguntas, Junior - [Módulos e Pacotes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/modules-packages.md): 18 perguntas, Junior - [Traits](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/traits.md): 22 perguntas, Mid-Level - [Generics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/generics.md): 20 perguntas, Mid-Level - [Lifetimes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/lifetimes.md): 20 perguntas, Mid-Level - [Iterators & Closures](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/iterators-closures.md): 22 perguntas, Mid-Level - [Smart Pointers](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/smart-pointers.md): 22 perguntas, Mid-Level - [Concurrency Basics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/concurrency-basics.md): 20 perguntas, Mid-Level - [async/await](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/async-await.md): 22 perguntas, Mid-Level - [Testing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/testing.md): 18 perguntas, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/cargo-ecosystem.md): 18 perguntas, Mid-Level - [Pattern Matching](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/pattern-matching.md): 18 perguntas, Mid-Level - [Macros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/macros.md): 20 perguntas, Mid-Level - [Serde e serialização](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/serde-serialization.md): 20 perguntas, Mid-Level - [Unsafe Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/unsafe-rust.md): 20 perguntas, Senior - [Traits avançados](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-traits.md): 22 perguntas, Senior - [Type System](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/type-system.md): 20 perguntas, Senior - [Tokio & Async I/O](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/tokio-async.md): 22 perguntas, Senior - [Otimização de Desempenho](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/performance-optimization.md): 20 perguntas, Senior - [Memory Management](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/memory-management.md): 20 perguntas, Senior - [Web Frameworks](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/web-frameworks.md): 22 perguntas, Senior - [Database Integration](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/database-integration.md): 20 perguntas, Senior - [Padrões de design em Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/design-patterns.md): 20 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-lifetimes