Rust

Lifetimes

Lifetime-annotaties, elisieregels, 'static-lifetime, struct-lifetimes, lifetime bounds

20 gespreksvragen·
Mid-Level
1

Wat is het belangrijkste doel van lifetimes in Rust?

Antwoord

Lifetimes stellen de compiler in staat te verifiëren dat alle references geldig zijn gedurende hun volledige gebruik. Ze zorgen ervoor dat een reference nooit langer leeft dan de data waarnaar deze verwijst, waardoor dangling references worden voorkomen. De borrow checker gebruikt lifetimes om geheugenveiligheid tijdens het compileren te valideren, zonder runtime-overhead.

2

Welke syntaxis wordt gebruikt om een lifetime op een reference te annoteren?

Antwoord

Lifetimes worden geannoteerd met een apostrof gevolgd door een naam, meestal een kleine letter zoals 'a. De syntaxis &'a T betekent een reference naar T met de lifetime 'a. Conventioneel worden 'a, 'b, 'c gebruikt voor generieke lifetimes, maar na de apostrof kan elke geldige identifier worden gebruikt.

3

Wat betekent de 'static-lifetime in Rust?

Antwoord

De 'static-lifetime geeft aan dat een reference gedurende de volledige duur van het programma kan leven. String-literals zoals "hello" hebben automatisch de 'static-lifetime omdat ze in de binary zijn ingebed. Globale constanten en met Box::leak gemaakte waarden hebben deze lifetime ook. Let op: 'static betekent niet dat de waarde vanaf de start van het programma bestond, maar dat deze tot het einde kan leven.

4

Hoeveel lifetime-elisieregels past de Rust-compiler automatisch toe?

5

Waarom compileert een functie fn longest(x: &str, y: &str) -> &str niet?

+17 gespreksvragen

Beheers Rust voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis