
Lifetimes
Lifetime annotations, elision rules, 'static lifetime, struct lifetimes, lifetime bounds
1Quel est le rôle principal des lifetimes en Rust ?
Quel est le rôle principal des lifetimes en Rust ?
Réponse
Les lifetimes permettent au compilateur de vérifier que toutes les références sont valides pendant leur utilisation. Elles garantissent qu'une référence ne survit jamais à la donnée qu'elle référence, évitant ainsi les dangling references. Le borrow checker utilise les lifetimes pour valider la sécurité mémoire à la compilation, sans overhead à l'exécution.
2Quelle syntaxe utiliser pour annoter un lifetime sur une référence ?
Quelle syntaxe utiliser pour annoter un lifetime sur une référence ?
Réponse
Les lifetimes sont annotées avec une apostrophe suivie d'un nom, généralement une lettre minuscule comme 'a. La syntaxe &'a T signifie une référence vers T avec le lifetime 'a. Par convention, on utilise 'a, 'b, 'c pour les lifetimes génériques, mais tout identifiant valide peut être utilisé après l'apostrophe.
3Que signifie le lifetime 'static en Rust ?
Que signifie le lifetime 'static en Rust ?
Réponse
Le lifetime 'static indique qu'une référence peut vivre pendant toute la durée du programme. Les string literals comme "hello" ont automatiquement le lifetime 'static car ils sont intégrés dans le binaire. Les constantes globales et les valeurs créées avec Box::leak ont également ce lifetime. Attention : 'static ne signifie pas que la valeur existe depuis le début du programme, mais qu'elle peut vivre jusqu'à la fin.
Combien de règles d'élision de lifetime le compilateur Rust applique-t-il automatiquement ?
Pour quelle raison une fonction fn longest(x: &str, y: &str) -> &str ne compile-t-elle pas ?
+17 questions d'entretien
Autres sujets d'entretien Rust
Les bases de Rust
Ownership & Borrowing
Structs & Enums
Gestion des erreurs
Collections
Modules & Packages
Traits
Generics
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde & Serialization
Unsafe Rust
Traits Avancés
Lifetimes Avancés
Type System
Tokio & Async I/O
Optimisation de Performance
Memory Management
Web Frameworks
Database Integration
Design Patterns Rust
Maîtrise Rust pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement