Rust

Lifetimes

Annotazioni lifetime, regole di elisione, lifetime 'static, lifetime nelle struct, lifetime bounds

20 domande da colloquio·
Mid-Level
1

Qual è lo scopo principale dei lifetime in Rust?

Risposta

I lifetime permettono al compiler di verificare che tutte le reference siano valide per l'intera durata del loro utilizzo. Garantiscono che una reference non sopravviva mai ai dati a cui si riferisce, prevenendo le dangling reference. Il borrow checker usa i lifetime per validare la sicurezza della memoria in fase di compilazione, senza overhead a runtime.

2

Quale sintassi si usa per annotare un lifetime su una reference?

Risposta

I lifetime vengono annotati con un apostrofo seguito da un nome, tipicamente una lettera minuscola come 'a. La sintassi &'a T indica una reference a T con il lifetime 'a. Per convenzione si usano 'a, 'b, 'c per i lifetime generici, ma dopo l'apostrofo può essere usato qualsiasi identificatore valido.

3

Cosa significa il lifetime 'static in Rust?

Risposta

Il lifetime 'static indica che una reference può vivere per l'intera durata del programma. Le string literal come "hello" hanno automaticamente il lifetime 'static perché sono incorporate nel binary. Anche le costanti globali e i valori creati con Box::leak hanno questo lifetime. Attenzione: 'static non significa che il valore esistesse dall'avvio del programma, ma che può vivere fino alla fine.

4

Quante regole di elisione dei lifetime applica automaticamente il compiler di Rust?

5

Perché una funzione fn longest(x: &str, y: &str) -> &str non compila?

+17 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis