# Zaawansowane Lifetime (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 pytań z rozmów - Senior - [Pytania z rozmów: Rust](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne.md) ## 1. Czym jest Higher-Ranked Trait Bound (HRTB) w Rust? **Odpowiedź** Higher-Ranked Trait Bound (HRTB) pozwala określić, że funkcja lub trait musi działać dla wszystkich możliwych lifetime, a nie tylko jednego konkretnego. Składnia for<'a> wskazuje, że trait bound musi być spełniony dla dowolnego lifetime 'a wybranego przez wywołującego. Ta funkcja jest niezbędna dla closure i callback, które muszą przyjmować referencje o różnych lifetime. ## 2. Jaka jest różnica między fn foo<'a>(f: impl Fn(&'a str)) a fn foo(f: impl for<'a> Fn(&'a str))? **Odpowiedź** W przypadku fn foo<'a> lifetime 'a jest ustalany przez wywołującego w momencie wywołania i pozostaje taki sam przez całe wykonanie. W przypadku for<'a> closure musi działać dla dowolnego lifetime, co pozwala wywoływać ją wielokrotnie z referencjami o różnych lifetime. To rozróżnienie jest kluczowe dla API, które wielokrotnie wywołują closure z różnymi tymczasowymi referencjami. ## 3. Czym jest lifetime subtyping w Rust i co oznacza 'a: 'b? **Odpowiedź** Lifetime subtyping ustanawia relację subtyping między lifetime. Notacja 'a: 'b oznacza, że 'a żyje co najmniej tak długo jak 'b, więc 'a jest subtype 'b. Referencja z dłuższym lifetime może być użyta tam, gdzie oczekiwany jest krótszy lifetime. Ta relacja jest covariant dla niezmiennych referencji, co pozwala przekazać referencję z dłuższym lifetime tam, gdzie wystarczyłaby krótsza. ## Jeszcze 17 dostępnych pytań - Czym jest variance w Rust i jak wpływa na typy generyczne? - Dlaczego &mut T jest invariant względem T, podczas gdy &T jest covariant? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Rust - [Podstawy Rusta](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/rust-basics.md): 25 pytań, Junior - [Ownership & Borrowing](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/ownership-borrowing.md): 22 pytań, Junior - [Structs & Enums](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/structs-enums.md): 20 pytań, Junior - [Obsługa błędów](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/error-handling.md): 18 pytań, Junior - [Kolekcje](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/collections.md): 20 pytań, Junior - [Moduły i pakiety](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/modules-packages.md): 18 pytań, Junior - [Traits](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/traits.md): 22 pytań, Mid-Level - [Generics](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/generics.md): 20 pytań, Mid-Level - [Lifetimes](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/lifetimes.md): 20 pytań, Mid-Level - [Iterators & Closures](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/iterators-closures.md): 22 pytań, Mid-Level - [Smart Pointers](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/smart-pointers.md): 22 pytań, Mid-Level - [Concurrency Basics](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/concurrency-basics.md): 20 pytań, Mid-Level - [async/await](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/async-await.md): 22 pytań, Mid-Level - [Testing](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/testing.md): 18 pytań, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/cargo-ecosystem.md): 18 pytań, Mid-Level - [Pattern Matching](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/pattern-matching.md): 18 pytań, Mid-Level - [Makra](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/macros.md): 20 pytań, Mid-Level - [Serde i serializacja](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/serde-serialization.md): 20 pytań, Mid-Level - [Unsafe Rust](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/unsafe-rust.md): 20 pytań, Senior - [Zaawansowane traity](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/advanced-traits.md): 22 pytań, Senior - [Type System](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/type-system.md): 20 pytań, Senior - [Tokio & Async I/O](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/tokio-async.md): 22 pytań, Senior - [Optymalizacja Wydajności](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/performance-optimization.md): 20 pytań, Senior - [Memory Management](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/memory-management.md): 20 pytań, Senior - [Web Frameworks](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/web-frameworks.md): 22 pytań, Senior - [Database Integration](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/database-integration.md): 20 pytań, Senior - [Wzorce projektowe w Rust](https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/design-patterns.md): 20 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/rust/pytania-rekrutacyjne/advanced-lifetimes