# Lifetime Lanjutan (Rust) > Higher-ranked trait bounds (HRTB), lifetime subtyping, variance (covariant, contravariant, invariant), 'static vs 'a, NLL - 20 pertanyaan wawancara - Senior - [Pertanyaan Wawancara: Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara.md) ## 1. Apa itu Higher-Ranked Trait Bound (HRTB) di Rust? **Jawaban** Higher-Ranked Trait Bound (HRTB) memungkinkan untuk menentukan bahwa sebuah fungsi atau trait harus bekerja untuk semua lifetime yang mungkin, bukan hanya satu yang spesifik. Sintaks for<'a> menunjukkan bahwa trait bound harus terpenuhi untuk lifetime 'a apa pun yang dipilih oleh pemanggil. Fitur ini penting untuk closure dan callback yang perlu menerima referensi dengan lifetime yang bervariasi. ## 2. Apa perbedaan antara fn foo<'a>(f: impl Fn(&'a str)) dan fn foo(f: impl for<'a> Fn(&'a str))? **Jawaban** Dengan fn foo<'a>, lifetime 'a ditetapkan oleh pemanggil pada saat pemanggilan dan tetap sama sepanjang eksekusi. Dengan for<'a>, closure harus bekerja untuk lifetime apa pun, sehingga dapat dipanggil berkali-kali dengan referensi dari lifetime yang berbeda. Perbedaan ini krusial untuk API yang memanggil sebuah closure berkali-kali dengan referensi sementara yang berbeda. ## 3. Apa itu lifetime subtyping di Rust dan apa arti 'a: 'b? **Jawaban** Lifetime subtyping membentuk hubungan subtyping antar lifetime. Notasi 'a: 'b berarti 'a hidup setidaknya selama 'b, sehingga 'a adalah subtype dari 'b. Sebuah referensi dengan lifetime yang lebih panjang dapat digunakan di tempat yang mengharapkan lifetime yang lebih pendek. Hubungan ini bersifat covariant untuk referensi imutabel, sehingga memungkinkan meneruskan referensi dengan lifetime yang lebih panjang di tempat yang cukup dengan yang lebih pendek. ## 17 pertanyaan lagi tersedia - Apa itu variance di Rust dan bagaimana pengaruhnya terhadap tipe generic? - Mengapa &mut T bersifat invariant terhadap T sedangkan &T bersifat covariant? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Rust lainnya - [Dasar-Dasar Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/rust-basics.md): 25 pertanyaan, Junior - [Ownership & Borrowing](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/ownership-borrowing.md): 22 pertanyaan, Junior - [Structs & Enums](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/structs-enums.md): 20 pertanyaan, Junior - [Penanganan Error](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/error-handling.md): 18 pertanyaan, Junior - [Collections](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/collections.md): 20 pertanyaan, Junior - [Module & Package](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/modules-packages.md): 18 pertanyaan, Junior - [Traits](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/traits.md): 22 pertanyaan, Mid-Level - [Generics](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/generics.md): 20 pertanyaan, Mid-Level - [Lifetimes](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/lifetimes.md): 20 pertanyaan, Mid-Level - [Iterators & Closures](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/iterators-closures.md): 22 pertanyaan, Mid-Level - [Smart Pointers](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/smart-pointers.md): 22 pertanyaan, Mid-Level - [Concurrency Basics](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/concurrency-basics.md): 20 pertanyaan, Mid-Level - [async/await](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/async-await.md): 22 pertanyaan, Mid-Level - [Testing](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/testing.md): 18 pertanyaan, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/cargo-ecosystem.md): 18 pertanyaan, Mid-Level - [Pattern Matching](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/pattern-matching.md): 18 pertanyaan, Mid-Level - [Macro](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/macros.md): 20 pertanyaan, Mid-Level - [Serde & Serialisasi](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/serde-serialization.md): 20 pertanyaan, Mid-Level - [Unsafe Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/unsafe-rust.md): 20 pertanyaan, Senior - [Trait Lanjutan](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/advanced-traits.md): 22 pertanyaan, Senior - [Type System](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/type-system.md): 20 pertanyaan, Senior - [Tokio & Async I/O](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/tokio-async.md): 22 pertanyaan, Senior - [Optimasi Performa](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/performance-optimization.md): 20 pertanyaan, Senior - [Memory Management](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/memory-management.md): 20 pertanyaan, Senior - [Web Frameworks](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/web-frameworks.md): 22 pertanyaan, Senior - [Database Integration](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/database-integration.md): 20 pertanyaan, Senior - [Design Pattern Rust](https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/design-patterns.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/rust/pertanyaan-wawancara/advanced-lifetimes