Rust

Lifetimes

Lifetime annotations, elision rules, 'static lifetime, struct lifetimes, lifetime bounds

20 questions d'entretien·
Confirmé
1

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.

2

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.

3

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.

4

Combien de règles d'élision de lifetime le compilateur Rust applique-t-il automatiquement ?

5

Pour quelle raison une fonction fn longest(x: &str, y: &str) -> &str ne compile-t-elle pas ?

+17 questions d'entretien

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