# Fortgeschrittene Lifetimes (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 Interview-Fragen - Senior - [Interview-Fragen: Rust](https://sharpskill.dev/de/technologies/rust/interviewfragen.md) ## 1. Was ist ein Higher-Ranked Trait Bound (HRTB) in Rust? **Antwort** Ein Higher-Ranked Trait Bound (HRTB) ermöglicht es anzugeben, dass eine Funktion oder ein Trait für alle möglichen Lifetimes funktionieren muss, nicht nur für ein bestimmtes. Die for<'a>-Syntax gibt an, dass der Trait Bound für jedes vom Aufrufer gewählte Lifetime 'a erfüllt sein muss. Diese Funktion ist unerlässlich für Closures und Callbacks, die Referenzen mit unterschiedlichen Lifetimes akzeptieren müssen. ## 2. Was ist der Unterschied zwischen fn foo<'a>(f: impl Fn(&'a str)) und fn foo(f: impl for<'a> Fn(&'a str))? **Antwort** Bei fn foo<'a> wird das Lifetime 'a vom Aufrufer zum Zeitpunkt des Aufrufs festgelegt und bleibt während der gesamten Ausführung gleich. Bei for<'a> muss die Closure für jedes Lifetime funktionieren, sodass sie mehrmals mit Referenzen unterschiedlicher Lifetimes aufgerufen werden kann. Diese Unterscheidung ist entscheidend für APIs, die eine Closure mehrmals mit unterschiedlichen temporären Referenzen aufrufen. ## 3. Was ist Lifetime Subtyping in Rust und was bedeutet 'a: 'b? **Antwort** Lifetime Subtyping etabliert eine Subtyping-Beziehung zwischen Lifetimes. Die Notation 'a: 'b bedeutet, dass 'a mindestens so lange lebt wie 'b, sodass 'a ein Subtype von 'b ist. Eine Referenz mit einem längeren Lifetime kann dort verwendet werden, wo ein kürzeres Lifetime erwartet wird. Diese Beziehung ist covariant für unveränderliche Referenzen, sodass eine Referenz mit einem längeren Lifetime dort übergeben werden kann, wo ein kürzeres ausreichen würde. ## 17 weitere Fragen verfügbar - Was ist Variance in Rust und wie wirkt sie sich auf generische Typen aus? - Warum ist &mut T in Bezug auf T invariant, während &T covariant ist? Kostenlos registrieren: https://sharpskill.dev/de/login ## Weitere Rust-Interviewthemen - [Rust-Grundlagen](https://sharpskill.dev/de/technologies/rust/interviewfragen/rust-basics.md): 25 Fragen, Junior - [Ownership & Borrowing](https://sharpskill.dev/de/technologies/rust/interviewfragen/ownership-borrowing.md): 22 Fragen, Junior - [Structs & Enums](https://sharpskill.dev/de/technologies/rust/interviewfragen/structs-enums.md): 20 Fragen, Junior - [Fehlerbehandlung](https://sharpskill.dev/de/technologies/rust/interviewfragen/error-handling.md): 18 Fragen, Junior - [Collections](https://sharpskill.dev/de/technologies/rust/interviewfragen/collections.md): 20 Fragen, Junior - [Module & Packages](https://sharpskill.dev/de/technologies/rust/interviewfragen/modules-packages.md): 18 Fragen, Junior - [Traits](https://sharpskill.dev/de/technologies/rust/interviewfragen/traits.md): 22 Fragen, Mid-Level - [Generics](https://sharpskill.dev/de/technologies/rust/interviewfragen/generics.md): 20 Fragen, Mid-Level - [Lifetimes](https://sharpskill.dev/de/technologies/rust/interviewfragen/lifetimes.md): 20 Fragen, Mid-Level - [Iterators & Closures](https://sharpskill.dev/de/technologies/rust/interviewfragen/iterators-closures.md): 22 Fragen, Mid-Level - [Smart Pointers](https://sharpskill.dev/de/technologies/rust/interviewfragen/smart-pointers.md): 22 Fragen, Mid-Level - [Concurrency Basics](https://sharpskill.dev/de/technologies/rust/interviewfragen/concurrency-basics.md): 20 Fragen, Mid-Level - [async/await](https://sharpskill.dev/de/technologies/rust/interviewfragen/async-await.md): 22 Fragen, Mid-Level - [Testing](https://sharpskill.dev/de/technologies/rust/interviewfragen/testing.md): 18 Fragen, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/de/technologies/rust/interviewfragen/cargo-ecosystem.md): 18 Fragen, Mid-Level - [Pattern Matching](https://sharpskill.dev/de/technologies/rust/interviewfragen/pattern-matching.md): 18 Fragen, Mid-Level - [Makros](https://sharpskill.dev/de/technologies/rust/interviewfragen/macros.md): 20 Fragen, Mid-Level - [Serde & Serialisierung](https://sharpskill.dev/de/technologies/rust/interviewfragen/serde-serialization.md): 20 Fragen, Mid-Level - [Unsafe Rust](https://sharpskill.dev/de/technologies/rust/interviewfragen/unsafe-rust.md): 20 Fragen, Senior - [Fortgeschrittene Traits](https://sharpskill.dev/de/technologies/rust/interviewfragen/advanced-traits.md): 22 Fragen, Senior - [Type System](https://sharpskill.dev/de/technologies/rust/interviewfragen/type-system.md): 20 Fragen, Senior - [Tokio & Async I/O](https://sharpskill.dev/de/technologies/rust/interviewfragen/tokio-async.md): 22 Fragen, Senior - [Performance-Optimierung](https://sharpskill.dev/de/technologies/rust/interviewfragen/performance-optimization.md): 20 Fragen, Senior - [Memory Management](https://sharpskill.dev/de/technologies/rust/interviewfragen/memory-management.md): 20 Fragen, Senior - [Web Frameworks](https://sharpskill.dev/de/technologies/rust/interviewfragen/web-frameworks.md): 22 Fragen, Senior - [Database Integration](https://sharpskill.dev/de/technologies/rust/interviewfragen/database-integration.md): 20 Fragen, Senior - [Rust Design Patterns](https://sharpskill.dev/de/technologies/rust/interviewfragen/design-patterns.md): 20 Fragen, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/de/technologies/rust/interviewfragen/advanced-lifetimes