
Lifetimes
Анотації lifetime, правила elision, lifetime 'static, lifetime у struct, lifetime bounds
1Яке основне призначення lifetime у Rust?
Яке основне призначення lifetime у Rust?
Відповідь
Lifetime дозволяють компілятору перевіряти, що всі reference є дійсними протягом усього їх використання. Вони гарантують, що reference ніколи не переживе дані, на які посилається, запобігаючи dangling reference. Borrow checker використовує lifetime для перевірки безпеки пам'яті під час компіляції, без накладних витрат під час виконання.
2Який синтаксис використовується для анотації lifetime на reference?
Який синтаксис використовується для анотації lifetime на reference?
Відповідь
Lifetime анотуються апострофом, за яким слідує ім'я, зазвичай маленька літера, як-от 'a. Синтаксис &'a T означає reference на T з lifetime 'a. За домовленістю для узагальнених lifetime використовують 'a, 'b, 'c, але після апострофа можна використати будь-який допустимий ідентифікатор.
3Що означає lifetime 'static у Rust?
Що означає lifetime 'static у Rust?
Відповідь
Lifetime 'static вказує, що reference може існувати протягом усього часу роботи програми. String literal на кшталт "hello" автоматично мають lifetime 'static, оскільки вони вбудовані в binary. Глобальні константи та значення, створені за допомогою Box::leak, також мають цей lifetime. Зауваження: 'static не означає, що значення існувало від початку програми, а що воно може існувати до кінця.
Скільки правил elision для lifetime компілятор Rust застосовує автоматично?
Чому функція fn longest(x: &str, y: &str) -> &str не компілюється?
+17 питань зі співбесід
Інші теми співбесід Rust
Основи Rust
Ownership & Borrowing
Structs & Enums
Обробка помилок
Колекції
Модулі та пакети
Traits
Generics
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Макроси
Serde та серіалізація
Unsafe Rust
Просунуті trait'и
Просунуті Lifetimes
Type System
Tokio & Async I/O
Оптимізація продуктивності
Memory Management
Web Frameworks
Database Integration
Патерни проєктування Rust
Опануй Rust для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно