Queste sono le vite nominate di Rust.
Citando dal linguaggio di programmazione Rust :
Ogni riferimento in Rust ha una durata, che è l'ambito per il quale quel riferimento è valido. La maggior parte delle volte le vite sono implicite e dedotte, proprio come la maggior parte dei tipi di tempo vengono dedotti. Analogamente a quando dobbiamo annotare i tipi perché sono possibili più tipi, ci sono casi in cui la durata dei riferimenti potrebbe essere correlata in alcuni modi diversi, quindi Rust ha bisogno che annotiamo le relazioni utilizzando parametri di durata generici in modo che possa assicurarsi che il i riferimenti effettivi utilizzati in fase di esecuzione saranno sicuramente validi.
Le annotazioni a vita non cambiano la durata di vita di uno qualsiasi dei riferimenti coinvolti. Allo stesso modo in cui le funzioni possono accettare qualsiasi tipo quando la firma specifica un parametro di tipo generico, le funzioni possono accettare riferimenti con qualsiasi durata quando la firma specifica un parametro di durata generico. Quello che fanno le annotazioni di durata è mettere in relazione le vite di più riferimenti tra loro.
Le annotazioni di durata hanno una sintassi leggermente insolita: i nomi dei parametri di durata devono iniziare con un apostrofo '
. I nomi dei parametri di durata sono generalmente tutti minuscoli e, come i tipi generici, i loro nomi sono generalmente molto brevi. 'a
è il nome che la maggior parte delle persone usa come predefinito. Le annotazioni dei parametri di durata vanno dopo il &
di un riferimento e uno spazio separa l'annotazione di durata dal tipo di riferimento.
Detto in un altro modo, una durata approssima l'intervallo di esecuzione durante il quale i dati a cui punta un riferimento sono validi. Il compilatore Rust dedurrà prudentemente la durata più breve possibile per essere sicuro. Se vuoi dire al compilatore che un riferimento dura più a lungo della stima più breve, puoi nominarlo, dicendo che il riferimento di output, ad esempio, ha la stessa durata di un dato riferimento di input.
La 'static
vita è una vita speciale, la più lunga di tutte le vite - per la durata del programma. Un tipico esempio sono le stringhe "letterali" che saranno sempre disponibili durante la vita del programma / modulo.
Puoi ottenere maggiori informazioni da questo gruppo di diapositive , a partire dalla diapositiva 29.
Lifetimes in Rust discute anche delle vite in modo approfondito.