Passa al contenuto principale

Capitolo 3 - Ownership

Il concetto di Ownership

📄️ 3.3 Prestiti e Riferimenti

Nel mondo di Rust, il concetto di Prestito (borrowing) e Riferimento (reference) è fondamentale. Questi concetti, che spesso vengono utilizzati in modo intercambiabile (ma possono avere sfumature di significato leggermente diverse a seconda del contesto), consentono ai programmatori di accedere ai dati senza doverne diventare proprietari, mantenendo la sicurezza e l'affidabilità del codice. In questo capitolo, esploreremo cosa sono e come vengono utilizzati questi strumenti, ma prima vediamo come funziona la memoria di un compute e come il processore lavora su di essa.

📄️ 3.4 Lifetime

Una lifetime in Rust è essenzialmente un'etichetta che indica quanto durerà un riferimento in un programma. I riferimenti sono puntatori che indicano i dati in memoria. La lifetime specifica fino a quando quel riferimento è valido e può essere utilizzato senza causare errori di accesso a memoria. In altre parole, stabilisce il periodo durante il quale i dati a cui il riferimento punta rimangono validi. Le lifetimes sono fondamentali in Rust perché consentono al compilatore di garantire che non ci siano riferimenti a dati invalidi, evitando così i temuti errori di accesso alla memoria. Quando si utilizzano riferimenti in Rust, è necessario definire chiaramente la lifetime associata, assicurandosi che i dati a cui il riferimento fa riferimento siano ancora validi durante tutto il suo utilizzo. Ciò aiuta a prevenire bug comuni come i dangling references, in cui si tenta di accedere a dati che sono già stati deallocati, migliorando così la sicurezza e l'affidabilità del codice Rust.