# Просунуті Lifetimes (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 питань зі співбесід - Senior - [Питання зі співбесід: Rust](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy.md) ## 1. Що таке Higher-Ranked Trait Bound (HRTB) в Rust? **Відповідь** Higher-Ranked Trait Bound (HRTB) дозволяє вказати, що функція або trait має працювати для всіх можливих lifetimes, а не лише для одного конкретного. Синтаксис for<'a> вказує, що trait bound має задовольнятися для будь-якого lifetime 'a, обраного викликачем. Ця можливість є важливою для closure та callback, які мають приймати посилання з різними lifetimes. ## 2. Яка різниця між fn foo<'a>(f: impl Fn(&'a str)) і fn foo(f: impl for<'a> Fn(&'a str))? **Відповідь** З fn foo<'a> lifetime 'a фіксується викликачем у момент виклику й залишається незмінним протягом усього виконання. З for<'a> closure має працювати для будь-якого lifetime, що дозволяє викликати її кілька разів із посиланнями різних lifetimes. Ця відмінність є критично важливою для API, які викликають closure кілька разів із різними тимчасовими посиланнями. ## 3. Що таке lifetime subtyping в Rust і що означає 'a: 'b? **Відповідь** Lifetime subtyping встановлює відношення subtyping між lifetimes. Запис 'a: 'b означає, що 'a живе щонайменше стільки ж, скільки 'b, тому 'a є subtype для 'b. Посилання з довшим lifetime можна використовувати там, де очікується коротший lifetime. Це відношення є covariant для незмінних посилань, що дозволяє передавати посилання з довшим lifetime туди, де достатньо коротшого. ## Ще 17 доступних питань - Що таке variance в Rust і як вона впливає на generic-типи? - Чому &mut T є invariant щодо T, тоді як &T є covariant? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід Rust - [Основи Rust](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/rust-basics.md): 25 запитань, Junior - [Ownership & Borrowing](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/ownership-borrowing.md): 22 запитань, Junior - [Structs & Enums](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/structs-enums.md): 20 запитань, Junior - [Обробка помилок](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/error-handling.md): 18 запитань, Junior - [Колекції](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/collections.md): 20 запитань, Junior - [Модулі та пакети](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/modules-packages.md): 18 запитань, Junior - [Traits](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/traits.md): 22 запитань, Mid-Level - [Generics](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/generics.md): 20 запитань, Mid-Level - [Lifetimes](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/lifetimes.md): 20 запитань, Mid-Level - [Iterators & Closures](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/iterators-closures.md): 22 запитань, Mid-Level - [Smart Pointers](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/smart-pointers.md): 22 запитань, Mid-Level - [Concurrency Basics](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/concurrency-basics.md): 20 запитань, Mid-Level - [async/await](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/async-await.md): 22 запитань, Mid-Level - [Testing](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/testing.md): 18 запитань, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/cargo-ecosystem.md): 18 запитань, Mid-Level - [Pattern Matching](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/pattern-matching.md): 18 запитань, Mid-Level - [Макроси](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/macros.md): 20 запитань, Mid-Level - [Serde та серіалізація](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/serde-serialization.md): 20 запитань, Mid-Level - [Unsafe Rust](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/unsafe-rust.md): 20 запитань, Senior - [Просунуті trait'и](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/advanced-traits.md): 22 запитань, Senior - [Type System](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/type-system.md): 20 запитань, Senior - [Tokio & Async I/O](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/tokio-async.md): 22 запитань, Senior - [Оптимізація продуктивності](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/performance-optimization.md): 20 запитань, Senior - [Memory Management](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/memory-management.md): 20 запитань, Senior - [Web Frameworks](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/web-frameworks.md): 22 запитань, Senior - [Database Integration](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/database-integration.md): 20 запитань, Senior - [Патерни проєктування Rust](https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/design-patterns.md): 20 запитань, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/technologies/rust/pytannia-spivbesidy/advanced-lifetimes