# Lifetime Avanzati (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 domande da colloquio - Senior - [Domande da colloquio: Rust](https://sharpskill.dev/it/technologies/rust/domande-colloquio.md) ## 1. Che cos'è un Higher-Ranked Trait Bound (HRTB) in Rust? **Risposta** Un Higher-Ranked Trait Bound (HRTB) permette di specificare che una funzione o un trait deve funzionare per tutti i lifetime possibili, non solo per uno specifico. La sintassi for<'a> indica che il trait bound deve essere soddisfatto per qualsiasi lifetime 'a scelto dal chiamante. Questa funzionalità è essenziale per le closure e i callback che devono accettare riferimenti con lifetime variabili. ## 2. Qual è la differenza tra fn foo<'a>(f: impl Fn(&'a str)) e fn foo(f: impl for<'a> Fn(&'a str))? **Risposta** Con fn foo<'a>, il lifetime 'a viene fissato dal chiamante al momento della chiamata e rimane lo stesso per tutta l'esecuzione. Con for<'a>, la closure deve funzionare per qualsiasi lifetime, consentendo di chiamarla più volte con riferimenti di lifetime diversi. Questa distinzione è cruciale per le API che chiamano una closure più volte con riferimenti temporanei diversi. ## 3. Che cos'è il lifetime subtyping in Rust e cosa significa 'a: 'b? **Risposta** Il lifetime subtyping stabilisce una relazione di subtyping tra lifetime. La notazione 'a: 'b significa che 'a vive almeno quanto 'b, quindi 'a è un subtype di 'b. Un riferimento con un lifetime più lungo può essere usato dove ci si aspetta un lifetime più corto. Questa relazione è covariant per i riferimenti immutabili, consentendo di passare un riferimento con un lifetime più lungo dove ne basterebbe uno più corto. ## Altre 17 domande disponibili - Che cos'è la variance in Rust e come influisce sui tipi generici? - Perché &mut T è invariant rispetto a T mentre &T è covariant? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Rust - [Fondamenti di Rust](https://sharpskill.dev/it/technologies/rust/domande-colloquio/rust-basics.md): 25 domande, Junior - [Ownership & Borrowing](https://sharpskill.dev/it/technologies/rust/domande-colloquio/ownership-borrowing.md): 22 domande, Junior - [Structs & Enums](https://sharpskill.dev/it/technologies/rust/domande-colloquio/structs-enums.md): 20 domande, Junior - [Gestione degli errori](https://sharpskill.dev/it/technologies/rust/domande-colloquio/error-handling.md): 18 domande, Junior - [Collezioni](https://sharpskill.dev/it/technologies/rust/domande-colloquio/collections.md): 20 domande, Junior - [Moduli e package](https://sharpskill.dev/it/technologies/rust/domande-colloquio/modules-packages.md): 18 domande, Junior - [Traits](https://sharpskill.dev/it/technologies/rust/domande-colloquio/traits.md): 22 domande, Mid-Level - [Generics](https://sharpskill.dev/it/technologies/rust/domande-colloquio/generics.md): 20 domande, Mid-Level - [Lifetimes](https://sharpskill.dev/it/technologies/rust/domande-colloquio/lifetimes.md): 20 domande, Mid-Level - [Iterators & Closures](https://sharpskill.dev/it/technologies/rust/domande-colloquio/iterators-closures.md): 22 domande, Mid-Level - [Smart Pointers](https://sharpskill.dev/it/technologies/rust/domande-colloquio/smart-pointers.md): 22 domande, Mid-Level - [Concurrency Basics](https://sharpskill.dev/it/technologies/rust/domande-colloquio/concurrency-basics.md): 20 domande, Mid-Level - [async/await](https://sharpskill.dev/it/technologies/rust/domande-colloquio/async-await.md): 22 domande, Mid-Level - [Testing](https://sharpskill.dev/it/technologies/rust/domande-colloquio/testing.md): 18 domande, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/it/technologies/rust/domande-colloquio/cargo-ecosystem.md): 18 domande, Mid-Level - [Pattern Matching](https://sharpskill.dev/it/technologies/rust/domande-colloquio/pattern-matching.md): 18 domande, Mid-Level - [Macro](https://sharpskill.dev/it/technologies/rust/domande-colloquio/macros.md): 20 domande, Mid-Level - [Serde e serializzazione](https://sharpskill.dev/it/technologies/rust/domande-colloquio/serde-serialization.md): 20 domande, Mid-Level - [Unsafe Rust](https://sharpskill.dev/it/technologies/rust/domande-colloquio/unsafe-rust.md): 20 domande, Senior - [Trait avanzati](https://sharpskill.dev/it/technologies/rust/domande-colloquio/advanced-traits.md): 22 domande, Senior - [Type System](https://sharpskill.dev/it/technologies/rust/domande-colloquio/type-system.md): 20 domande, Senior - [Tokio & Async I/O](https://sharpskill.dev/it/technologies/rust/domande-colloquio/tokio-async.md): 22 domande, Senior - [Ottimizzazione delle Prestazioni](https://sharpskill.dev/it/technologies/rust/domande-colloquio/performance-optimization.md): 20 domande, Senior - [Memory Management](https://sharpskill.dev/it/technologies/rust/domande-colloquio/memory-management.md): 20 domande, Senior - [Web Frameworks](https://sharpskill.dev/it/technologies/rust/domande-colloquio/web-frameworks.md): 22 domande, Senior - [Database Integration](https://sharpskill.dev/it/technologies/rust/domande-colloquio/database-integration.md): 20 domande, Senior - [Design Pattern in Rust](https://sharpskill.dev/it/technologies/rust/domande-colloquio/design-patterns.md): 20 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/rust/domande-colloquio/advanced-lifetimes